给ListView的每一项item设置响应事件转跳到相应Activity的问题。

可不可以做到不在onItemClick()方法中以switch的方法定义每一项item的intent目标,
而是在init的时候传入一个可以得到 nextActivity.class(需要转跳的activity的值),然后在onItemClick里写intent的时候只要get到那个值?

我试了一下,遇到了问题。
下面是我自定义的一个类

public class HomePageList {
        private String name;
        private int imageId;
        private Class<Activity> nextactivity;

        public HomePageList(String name, int imageId, Class<Activity> nextactivity) {
                this.name = name;
                this.imageId = imageId;
                this.nextactivity = nextactivity;
    }

        public String getName() {
                return name;
    }

        public int getImageId() {
                return imageId;
    }

        public Class<XzdtActivity> getNextactivity() {
                return nextactivity;
    }

}

这里是我的MainActivity

private List<HomePageList> homepagelist = new ArrayList<HomePageList>();
......
        listView.setOnItemClickListener(new OnItemClickListener(){
                public void onItemClick(AdapterView<?> parent,View view,int position,long id){
                        HomePageList homepage = homepagelist.get(position);
                        Intent intent = new Intent(MainActivity.this,homepage.getNextactivity());
                        startActivity(intent);
            }
        });
        /*在这里遇到问题了,我的下一个Activity是XzdtActivity,然而这样填写的话,他让我把自定义的HomePageList类中nextactivity的类型改成Class<XzdtActivity>,这样其他的Activity都不能传入了,这要怎么解决呢?*/
        private void initHomePages() {
                HomePageList itme1 = new HomePageList("小镇大厅", R.drawable.common_36_icon,XzdtActivity.class);
                homepagelist.add(itme1);
                .......
        }

请问能不能修改一下让这个方法做到可行的程度?

主Activity

 public class MainActivity extends Activity {
    private List<HomePageList> homepagelist = new ArrayList<HomePageList>();
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.activity_main);

        init();
        HomePageAdapter homepageadapter = new HomePageAdapter(
                MainActivity.this, R.layout.homepage_list, homepagelist);
        ListView listView= (ListView) findViewById(R.id.homepage);
        listView.setAdapter(homepageadapter);

        listView.setOnItemClickListener(new OnItemClickListener() {
            public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) {
                HomePageList homepage = homepagelist
                        .get(position);
                Intent intent = new Intent(MainActivity.this, homepage
                        .getNextactivity());
                startActivity(intent);
            }
        });
    }

    private void init() {
        HomePageList itme1 = new HomePageList("title1",
                R.drawable.common_1_icon, activity1.class);
        homepagelist.add(itme1);
        HomePageList itme2 = new HomePageList("title2",
                R.drawable.common_2_icon, activity2.class);
        homepagelist.add(itme2);
        HomePageList itme3 = new HomePageList("title3", R.drawable.common_3_icon,
                activity3.class);
        homepagelist.add(itme3);
        HomePageList itme4 = new HomePageList("title4", R.drawable.common_4_icon,
                activity4.class);
        homepagelist.add(itme4);
    }

}   

自定义的HomePagelist类

 public class HomePageList {
    private String name;
    private int imageId;
    private Class<?> nextactivity;

    public HomePageList(String name, int imageId, Class<?> nextactivity) {
        this.name = name;
        this.imageId = imageId;
        this.nextactivity = nextactivity;
    }

    public String getName() {
        return name;
    }

    public int getImageId() {
        return imageId;
    }

    public Class<?> getNextactivity() {
        return nextactivity;
    }

}

http://q.cnblogs.com/q/69552/

如你楼上回复,不响应点击事件如何跳转?

已经解决了,把自定义类中的
private Class改成private Class<?>就可以成功了,虽然不是很清楚原理