java– 如何用listView项打开不同的活动?

java– 如何用listView项打开不同的活动?,第1张

概述我有一个包含9个不同字符串的String-Array,并使用此字符串创建了一个listView;现在,当我点击listView的每个元素时,我想打开一个不同的Activity.我已经试过了row.setOnClickListener(newView.OnClickListener(){@OverridepublicvoidonClick(Viewv){star

我有一个包含9个不同字符串的String-Array,并使用此字符串创建了一个ListVIEw;现在,当我点击ListVIEw的每个元素时,我想打开一个不同的Activity.我已经试过了

row.setonClickListener(new VIEw.OnClickListener() {    @OverrIDe    public voID onClick(VIEw v) {        startActivity(new Intent((Activity)context, Workouts.class));    }});

但它只为所有项目打开相同的活动.如果你能为我提供一个有效的代码,那将是非常好的,因为我已经尝试过管理这个问题.

主要活动:

public class MainActivity extends Activity implements OnItemClickListener {    private DrawerLayout drawerLayout;    private ListVIEw ListVIEw;    private ActionbarDrawerToggle drawerListener;    private MyAdapter MyAdapter;    @OverrIDe    protected voID onCreate(Bundle savedInstanceState){        super.onCreate(savedInstanceState);        setContentVIEw(R.layout.activity_main);        drawerLayout=(DrawerLayout) findVIEwByID(R.ID.drawerLayout);        ListVIEw=(ListVIEw)findVIEwByID(R.ID.drawerList);        MyAdapter=new MyAdapter(this);        ListVIEw.setAdapter(MyAdapter);        ListVIEw.setonItemClickListener(this);        drawerListener= new ActionbarDrawerToggle(this, drawerLayout,             R.drawable.Listmenu,        R.string.drawer_open, R.string.drawer_close){            @OverrIDe            public voID onDrawerClosed(VIEw drawerVIEw) {                // Todo auto-generated method stub                super.onDrawerClosed(drawerVIEw);            }            @OverrIDe            public voID onDrawerOpened(VIEw drawerVIEw) {                // Todo auto-generated method stub                Toast.makeText(MainActivity.this, " Drawer Opened ",                   Toast.LENGTH_SHORT).show();            }        };        drawerLayout.setDrawerListener(drawerListener);         getActionbar().setHomebuttonEnabled(true);        getActionbar().setdisplayHomeAsUpEnabled(true);    }    @OverrIDe    public boolean onoptionsItemSelected(MenuItem item) {        // Todo auto-generated method stub        if (drawerListener.onoptionsItemSelected(item))        {            return true;        }        return super.onoptionsItemSelected(item);    }    @OverrIDe    public voID onConfigurationChanged(Configuration newConfig) {        // Todo auto-generated method stub        super.onConfigurationChanged(newConfig);        drawerListener.onConfigurationChanged(newConfig);    }    @OverrIDe    protected voID onPostCreate(Bundle savedInstanceState) {        // Todo auto-generated method stub        super.onPostCreate(savedInstanceState);        drawerListener.syncState();    }    @OverrIDe    public voID onItemClick(AdapterVIEw<?> parent, VIEw vIEw, int position,            long ID) {    }    public voID selectItem(int position) {                ListVIEw.setItemChecked(position, true);    }    public  voID setTitle(String Title)    {        getActionbar().setTitle(Title);    class MyAdapter extends BaseAdapter {        private Context context;        String[] planets;        int[] images = { R.drawable.home, R.drawable.workout, R.drawable.week,            R.drawable.gallery, R.drawable.statistics, R.drawable.settings};            public MyAdapter(Context context) {                this.context=context;                planets=context.getResources().getStringArray(R.array.planets);            }            @OverrIDe            public int getCount() {                // Todo auto-generated method stub                return planets.length;            }            @OverrIDe            public Object getItem(int position) {                // Todo auto-generated method stub                return planets[position];            }            @OverrIDe            public long getItemID(int position) {                // Todo auto-generated method stub                return position;            }            @OverrIDe            public VIEw getVIEw(int position, VIEw convertVIEw, VIEwGroup parent) {                // Todo auto-generated method stub                VIEw row =null;                if (convertVIEw==null)                {                    LayoutInflater inflater = (LayoutInflater)                                    context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);                    row=inflater.inflate(R.layout.custom_row, parent, false);                }                else                {                    row = convertVIEw                                    }                row.setonClickListener(new VIEw.OnClickListener() {                    @OverrIDe                    public voID onClick(VIEw v) {                        startActivity(new Intent((Activity) context, Workouts.class));                    }                });                TextVIEw TitleTextVIEw = (TextVIEw) row.findVIEwByID(R.ID.textVIEw1);                ImageVIEw TitleImageVIEw = (ImageVIEw) row.findVIEwByID(R.ID.imageVIEw1);                TitleTextVIEw.setText(planets[position]);                TitleImageVIEw.setimageResource(images[position]);                return row;                }        }    }

解决方法:

==>在您的MainActivity中替换以下代码

public class MainActivity extends Activity implements OnItemClickListener      { private DrawerLayout drawerLayout; private ListVIEw ListVIEw;private ActionbarDrawerToggle drawerListener; private MyAdapter MyAdapter; @OverrIDeprotected voID onCreate(Bundle savedInstanceState){     super.onCreate(savedInstanceState);setContentVIEw(R.layout.activity_main); drawerLayout=(DrawerLayout) findVIEwByID(R.ID.drawerLayout); ListVIEw=(ListVIEw)findVIEwByID(R.ID.drawerList); MyAdapter=new MyAdapter(this); ListVIEw.setAdapter(MyAdapter); ListVIEw.setonItemClickListener(this);  drawerListener= new ActionbarDrawerToggle(this, drawerLayout,       R.drawable.Listmenu,    R.string.drawer_open, R.string.drawer_close){  @OverrIDe  public voID onDrawerClosed(VIEw drawerVIEw) {    // Todo auto-generated method stub    super.onDrawerClosed(drawerVIEw);}@OverrIDe        public voID onDrawerOpened(VIEw drawerVIEw) {            // Todo auto-generated method stub    Toast.makeText(MainActivity.this, " Drawer Opened ",    Toast.LENGTH_SHORT).show();    }};    drawerLayout.setDrawerListener(drawerListener);     getActionbar().setHomebuttonEnabled(true);    getActionbar().setdisplayHomeAsUpEnabled(true);    } @OverrIDe  public boolean onoptionsItemSelected(MenuItem item) {   // Todo auto-generated method stubif(drawerListener.onoptionsItemSelected(item))   {return true;  }return super.onoptionsItemSelected(item);  }    @OverrIDepublic voID onConfigurationChanged(Configuration newConfig) {  // Todo auto-generated method stubsuper.onConfigurationChanged(newConfig);drawerListener.onConfigurationChanged(newConfig);}   @OverrIDeprotected voID onPostCreate(Bundle savedInstanceState) {// Todo auto-generated method stubsuper.onPostCreate(savedInstanceState); drawerListener.syncState();    }      @OverrIDe  public voID onItemClick(AdapterVIEw<?> parent, VIEw vIEw, int position,         long ID) {if (position == 0) {        startActivity(new Intent((Activity) context, A.class));    }    if (position == 1) {        startActivity(new Intent((Activity) context, B.class));    }    if (position == 2) {        startActivity(new Intent((Activity) context, C.class));    }    if (position == 3) {        startActivity(new Intent((Activity) context, D.class));    }    if (position == 4) {        startActivity(new Intent((Activity) context, E.class));    }    if (position == 5) {        startActivity(new Intent((Activity) context, F.class));    }    if (position == 6) {        startActivity(new Intent((Activity) context, G.class));    }    if (position == 7) {        startActivity(new Intent((Activity) context, H.class));    }    if (position == 8) {        startActivity(new Intent((Activity) context, I.class));    }        }public voID selectItem(int position) {ListVIEw.setItemChecked(position, true);}public  voID setTitle(String Title){getActionbar().setTitle(Title);}class MyAdapter extends BaseAdapter {private Context context;String[] planets;int[] images = { R.drawable.home, R.drawable.workout, R.drawable.week,    R.drawable.gallery, R.drawable.statistics, R.drawable.settings}; public MyAdapter(Context context) { this.context=context;   planets=context.getResources().getStringArray(R.array.planets);  }@OverrIDe  public int getCount() {   // Todo auto-generated method stubreturn planets.length; }@OverrIDepublic Object getItem(int position) {// Todo auto-generated method stub   return planets[position];  }@OverrIDe public long getItemID(int position) {// Todo auto-generated method stubreturn position;}  @OverrIDepublic VIEw getVIEw(int position, VIEw convertVIEw, VIEwGroup parent) {// Todo auto-generated method stubVIEw row =null;if(convertVIEw==null){    LayoutInflater inflater=(LayoutInflater)                 context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);    row=inflater.inflate(R.layout.custom_row, parent, false);}else{    row=convertVIEw;}TextVIEw TitleTextVIEw=(TextVIEw) row.findVIEwByID(R.ID.textVIEw1);  ImageVIEw TitleImageVIEw= (ImageVIEw) row.findVIEwByID(R.ID.imageVIEw1);TitleTextVIEw.setText(planets[position]);TitleImageVIEw.setimageResource(images[position]);return row; }   } }
总结

以上是内存溢出为你收集整理的java – 如何用listView项打开不同的活动?全部内容,希望文章能够帮你解决java – 如何用listView项打开不同的活动?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1107909.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存