0

几天来,我一直在努力寻找正确的方法来实现 ListView 的动作侦听器。我真正想要完成的是创建一个 ListView 并且每当用户单击任何项​​目时,都会切换以前的 Activity。我对此很陌生,所以请帮助我,我将非常感激。如果你能告诉我我在代码上做错了什么,那就太棒了!

我正在使用 [这里][1] 中的 Fedor 代码。

        ///Here I tried to Implement an action listener but It doesn't work.

        list.setOnItemClickListener(new OnItemClickListener() {                                                                                                                                                             
            public void onItemClick(AdapterView<?> arg0, View arg1, int position,long id)                               
            {                                                                                                                                                                           
                if(list.getItemAtPosition(position).equals(mStrings[1]))                                                       
                {                                                                                                           
                    Intent i = new Intent(MainActivity.this, Activity2.class);                                                                                        
                    startActivity(i);                                                                                
                    }                                                                                                    
                }                                                                                                       
            });


      }
4

1 回答 1

0

在这种情况下,您需要覆盖 onListItemClick。更多帮助请参考 ListView 上的 Click Listener ,该解决方案是一个相当不错的实现。

这是应该在您的主要活动中进行的可能实现。请记住,这仅在您保持 MainActivity 扩展 Activity 时才有效。

@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
    super.onListItemClick(l, v, position, id);
     // Intent launcher here
}

如果您希望稍后扩展 ListActivity 而不是 Activity,并且您需要调用 onListItemClick,请按照此方案进行

公共类 YourClass 扩展 ListActivity 实现 OnItemClickListener{

@Override
public void onCreate(Bundle icicle){
    super.onCreate(icicle);
    setContentView(R.layout.your_layout);

    getListView().setOnItemClickListener(this);
}

@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
    // your stuff here
}
}
于 2011-03-26T15:25:28.070 回答