【问题标题】:Android Set ListView OnItemClickListenerAndroid 设置 ListView OnItemClickListener
【发布时间】:2012-02-22 03:20:43
【问题描述】:

这是我的活动开始。

public class SettingActivityR extends CommBaseActivity implements OnItemClickListener

CommBaseActivity 是从 Activity 扩展而来的类句柄通信

SettingActivityR 中的 Structure 包含一个名为 SeverListView 的 listView

我已经在 Activity onCreate 方法中设置了这些设置

    SeverlistView.setAdapter(this.m_adapter);  
    SeverlistView.setClickable(true);//already set it Clickable!
    SeverlistView.setOnItemClickListener(this);

并覆盖方法

@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
// TODO Auto-generated method stub
SeverDataList targetSeverItem=m_adapter.items.get(arg2);
Log.i("bird","zzz");    
}

适配器工作正常,但 OnItemClickListener 根本不工作。调试模式甚至不会遇到这种方法。这是为什么呢?

【问题讨论】:

    标签: android listview onitemclicklistener


    【解决方案1】:

    SettingActivityR 应该扩展 ListActivity。

    在onCreate()中,调用setListAdapter(this.m_adapter);

    从这里开始,onListItemClick() 方法应该为您处理回调。

    【讨论】:

    • 但是SettingActivityR不只是一个ListView,如果我还需要从Activity扩展的SettingActivityR怎么办?
    • 除非您的 Activity 需要显示超过 1 个 ListView,否则一个 ListActivity 就足够了,您仍然可以照常添加和自定义其他小部件。
    • hum....但我仍然想在 Activity 中使用该结构...因为每个 Activity 都可以从它扩展...
    • 我有一个代码,它的结构就像我想要的那样......(活动包含一个 ListView 并且工作正常)但我就是找不到与我的不同的地方......
    【解决方案2】:

    您可以尝试将您的Adapter 替换为here 提供的示例吗?滚动到页面末尾,您将看到

    String[] countries = getResources().getStringArray(R.array.countries_array);
    setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, countries));
    

    如果这可以正常工作,但您的适配器无法正常工作,那么您可能需要在适配器中执行某些特定操作。您能否也分享一下您的适配器代码?

    【讨论】:

    • 我们需要查看更多代码才能为您提供帮助。我创建了一个简单的Activity(不是ListActivity)并尝试了我上面提供的链接中的示例。它工作得很好。我可以看到Toast
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多