Android 如何使listview的某些项不可单击?
我有以下代码,很容易理解。我希望此listview的某些特定子项不可单击Android 如何使listview的某些项不可单击?,android,android-listview,Android,Android Listview,我有以下代码,很容易理解。我希望此listview的某些特定子项不可单击 ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,R.layout.list_item,R.id.module_name_item, testdata); m_listview.setAdapter(adapter); Log.i("check","1"); if(section
ArrayAdapter<String> adapter =
new ArrayAdapter<String>(this,R.layout.list_item,R.id.module_name_item, testdata);
m_listview.setAdapter(adapter);
Log.i("check","1");
if(sectionAttempts.get(0).equals("0"))
{
m_listview.getChildAt(2).setEnabled(false);
m_listview.getChildAt(3).setEnabled(false);
}
else
{
if(sectionAttempts.get(2).equals("0"))
{
m_listview.getChildAt(3).setEnabled(false);
}
}
@Override
public boolean areAllItemsSelectable() {
return false;
}
作为java.lang.NullpointerException。我试图找到错误并使用Log.I(“check”,m_listview.getChildCount());它显示0。所以我猜listview还没有创建!!这怎么可能呢
有什么问题吗?Thanx提前获取任何帮助。覆盖
AreaAllItemsSelectable()
方法。返回false表示所有项目都不可单击
ArrayAdapter<String> adapter =
new ArrayAdapter<String>(this,R.layout.list_item,R.id.module_name_item, testdata);
m_listview.setAdapter(adapter);
Log.i("check","1");
if(sectionAttempts.get(0).equals("0"))
{
m_listview.getChildAt(2).setEnabled(false);
m_listview.getChildAt(3).setEnabled(false);
}
else
{
if(sectionAttempts.get(2).equals("0"))
{
m_listview.getChildAt(3).setEnabled(false);
}
}
@Override
public boolean areAllItemsSelectable() {
return false;
}
然后重写下面的方法以返回不可单击的项
@Override
public boolean isEnabled(int position) {
if(position == your_item_pos) {
return false;
}
return true;
}
似乎您没有初始化ListView。在
onCreate
中,如果您使用的是ListActivity,请使用m_listview=getListView()
如果您使用的是常规活动,请使用m_listview=findViewById(R.id…)
。分享我的经验,下面的技巧成功了(视图指列表项视图):
- 通过重写该方法启用该方法无效,因为该方法从未被调用
- 将focusable设置为false也不起作用
android:listSelector=“@android:color/transparent”
的XML中设置了以下属性,它对我有效。