Cannot resolve constructor ArrayAdapter

匿名 (未验证) 提交于 2019-12-03 01:48:02

问题:

Hi Guys I am getting a Cannot resolve constructor ArrayAdapter in my OnCreateView method with the listAdapter I am trying to list text data in my tabs and here is my main activity. Any help will be appreciated I am still a noobie in Java.

public class MainActivity extends ActionBarActivity {      private Toolbar toolbar;     private ViewPager mPager;     private SlidingTabLayout mTabs;      @Override     protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.activity_main);          toolbar = (Toolbar) findViewById(R.id.app_bar);         setSupportActionBar(toolbar);          mPager= (ViewPager) findViewById(R.id.viewPager);         mTabs=(SlidingTabLayout) findViewById(R.id.tabs);         mPager.setAdapter(new MyPagerAdapter(getSupportFragmentManager()));         mTabs.setDistributeEvenly(true);         mTabs.setBackgroundColor(getResources().getColor(R.color.colorPrimary));         mTabs.setSelectedIndicatorColors(getResources().getColor(R.color.colorAccent));         mTabs.setViewPager(mPager);     }      @Override     public boolean onCreateOptionsMenu(Menu menu) {         // Inflate the menu; this adds items to the action bar if it is present.         getMenuInflater().inflate(R.menu.menu_main, menu);         return true;     }      @Override     public boolean onOptionsItemSelected(MenuItem item) {         // Handle action bar item clicks here. The action bar will         // automatically handle clicks on the Home/Up button, so long         // as you specify a parent activity in AndroidManifest.xml.         int id = item.getItemId();          //noinspection SimplifiableIfStatement         if (id == R.id.action_settings) {             return true;         }          return super.onOptionsItemSelected(item);     }      class MyPagerAdapter extends FragmentPagerAdapter {          String[] tabs;          public MyPagerAdapter(FragmentManager fm) {             super(fm);             tabs=getResources().getStringArray(R.array.tabs);         }          @Override         public Fragment getItem(int position) {              MyFragment myFragment=MyFragment.getInstance(position);             return myFragment;         }          @Override         public CharSequence getPageTitle(int position) {             return tabs[position];         }          @Override         public int getCount() {             return 5;         }     }      public static class MyFragment extends Fragment {          private TextView textView;         private ListView mainListView;         private ArrayAdapter listAdapter ;          public static MyFragment getInstance(int position){              MyFragment myFragment=new MyFragment();             Bundle  args=new Bundle();             args.putInt("position", position);             myFragment.setArguments(args);             return myFragment;         }          @Override          public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {              View layout=inflater.inflate(R.layout.fragment_my, container, false);              mainListView=(ListView) layout.findViewById(R.id.position);              String[] planets = new String[] { "Mercury", "Venus", "Earth", "Mars",                     "Jupiter", "Saturn", "Uranus", "Neptune"};             ArrayList planetList = new ArrayList();             planetList.addAll( Arrays.asList(planets) );              listAdapter = new ArrayAdapter(this, R.layout.simplerow, planetList);             mainListView.setAdapter( listAdapter );             return layout;         }     } } 

回答1:

Change

 listAdapter = new ArrayAdapter(this, R.layout.simplerow, planetList); 

to

 listAdapter = new ArrayAdapter(getActivity(), R.layout.simplerow, planetList); 

You can get Context in Fragment by using getActivity().



回答2:

Replace this with activityName.this Change

listAdapter = new ArrayAdapter(this, R.layout.simplerow, planetList); 

with

listAdapter = new ArrayAdapter(activityName.this, R.layout.simplerow, planetList); 

This solved for me using in asyncTask.



回答3:

try import android.widget.ArrayAdapter; This can as well solve the problem.



易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!