如何禁用android中列表视图中的特定列表项?

时间:2013-07-29 08:19:46

标签: android android-listview

如何禁用android中列表视图中的特定列表项? 我的意思是,如果我从列表视图中选择任何一个项目,该项目将被禁用,这意味着该项目不应再次可选。 怎么做?

建议

感谢您宝贵的时间!..

6 个答案:

答案 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);
 }

}