如何禁用android中列表视图中的特定列表项? 我的意思是,如果我从列表视图中选择任何一个项目,该项目将被禁用,这意味着该项目不应再次可选。 怎么做?
建议
感谢您宝贵的时间!..
答案 0 :(得分:24)
尝试在setOnItemClicklistener()
中使用此代码if(listview.getChildAt(selectedPosition).isEnabled())
{
listview.getChildAt(selectedPosition).setEnabled(false);
}
答案 1 :(得分:20)
当您将数据元素列表传递给BaseAdapter
时,请在此列表的名为isEnabled
的元素类中添加一个字段,并将其设置为true
/ {{1}根据需要,然后覆盖false
这样的isEnabled
方法:
BaseAdapter
其中@Override
public boolean isEnabled(int position) {
return list.get(position).isEnabled;
}
是您的数据元素对象列表。
答案 2 :(得分:9)
尝试覆盖适配器中的BaseAdapter.isEnabled()
,并从onItemClick()
调用此方法。
答案 3 :(得分:0)
当你单击该项时,它会设置一个布尔值..并且使用该项的方法是检查布尔值是否已被触发,例如设置为false。然后在你的点击部分使用BaseAdapter.isEnabled()= false;
或者只使用那个布尔值,他们再也不能点击它了。
答案 4 :(得分:0)
mlistView.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener()
{
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,long arg3)
{
arg1.setEnabled(false);
}
}
答案 5 :(得分:0)
为了在列表创建时禁用列表项,您必须从ArrayAdapter继承子类。您必须覆盖以下方法:isEnabled(int position)
class MenuAdapter extends ArrayAdapter<String> {
public boolean isEnabled(int position) {
// return false if position == positionYouWantToDisable
}
}
或在Activity类
中public class MainActivity extends Activity {
ListView listview;
ArrayAdapter<String> arrayadapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listview = (ListView)findViewById(R.id.listView1);
button = (Button)findViewById(R.id.button1);
arrayadapter = new ArrayAdapter<String>(MainActivity.this,
android.R.layout.simple_list_item_1, subjects);
listview.setAdapter(arrayadapter);
listview.getChildAt(1).setEnabled(false);
}
}