Android SDK-ListView,根据单击的行启动不同的意图

Android SDK-ListView,根据单击的行启动不同的意图,android,listview,sdk,onitemclicklistener,Android,Listview,Sdk,Onitemclicklistener,android开发新手,我正在将我的iOS应用程序移植到android上。在我的应用程序中,我使用ListView,这非常有效。这是我到目前为止所拥有的,它在一个tabwidget中 setListAdapter(new ArrayAdapter<String> (this, R.layout.row_style, ITEMS)); ListView lv = getListView(); lv.setTextFilterEnabled(true); sta

android开发新手,我正在将我的iOS应用程序移植到android上。在我的应用程序中,我使用ListView,这非常有效。这是我到目前为止所拥有的,它在一个tabwidget中

    setListAdapter(new ArrayAdapter<String> (this, R.layout.row_style, ITEMS));
    ListView lv = getListView();
    lv.setTextFilterEnabled(true);

static final String[] ITEMS = new String[] {
    "Apple", "Google", "Hewlett Packard", "Adobe"
};
setListAdapter(新的ArrayAdapter(这个,R.layout.row_样式,ITEMS));
ListView lv=getListView();
lv.setTextFilterEnabled(真);
静态最终字符串[]项=新字符串[]{
“苹果”、“谷歌”、“惠普”、“Adobe”
};
注意,ITEMS字符串数组只是虚拟数据。现在我的问题是,如果用户点击苹果,我想启动一个名为AppleActivity的活动。我怎么能和一个听者在一起呢。在iphonesdk中,我可以调用

if(objectAtIndex==0)

我能同时做点什么吗?希望你们能帮忙

乔纳斯:) 注意,ITEMS字符串数组只是虚拟数据。现在我的问题是,如果用户点击苹果,我想启动一个名为AppleActivity的活动。我怎么能和一个听者在一起呢。在iphonesdk中,我可以调用

if(objectAtIndex==0)

我能同时做点什么吗?希望你们能帮忙


乔纳斯:)

是的,你可以,你会有这样的东西 ->您在之后设置适配器

    yourList.setOnItemClickListener(new OnItemClickListener() {
    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) {
   //arg2 represents the position , the eletement at arg 2 that is clicked 
   if (arg2==1) startActivity (new Intent ("blabla"));
   if(arg2==2) startActivity (new Intente("Adobeeee"));
   }
yourList.setOnItemClickListener(新的OnItemClickListener(){
公共视图单击(AdapterView arg0、视图arg1、整型arg2、长型arg3){
//arg2表示位置,即在arg2处单击的元素
如果(arg2==1)开始活动(新意图(“blabla”);
如果(arg2==2)开始活动(新意图(“Adobeee”);
}

这是因为您正在尝试启动适配器,而活动类必须是意图构造函数的第二个参数。此外,此活动必须在清单文件中描述。

lv.setOnItemClickListener(new OnItemClickListener()){
lv.setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View v, int position, long id) {

            if (position == 0) {
                Intent algebra = new Intent(v.getContext(), AlgebraListViewController.class);
                startActivity(algebra);
            }
            else if (position == 1) {
                Intent oekonomi = new Intent(v.getContext(), OekonomiListViewController.class);
                startActivity(oekonomi);
            }
        }
    });
public void onItemClick(AdapterView父视图、视图v、整型位置、长id){ 如果(位置==0){ 意向代数=新意向(v.getContext(),AlgebraListViewController.class); 星触觉(代数); } 否则如果(位置==1){ Intent oekonomi=新Intent(v.getContext(),OekonomiListViewController.class); 星触觉(oekonomi); } } });

这应该可以正常工作,重命名变量以便知道它们是什么(而不是arg0、arg1、arg2和arg3).

下面的答案部分非常混乱。Jonas,你可以在答案中添加注释,而不是对另一个答案的响应。我抓取了你放在那里的代码,添加了适当的变量名,它应该可以满足你的需要。