如何在android的列表视图中禁用特定的列表项?我的意思是,如果一旦我从列表视图中选择了任何一个项目,该项目就会被禁用,这意味着该项目不应再次被选中。这个怎么做?
请提出建议
感谢您宝贵的时间!..
如何在android的列表视图中禁用特定的列表项?我的意思是,如果一旦我从列表视图中选择了任何一个项目,该项目就会被禁用,这意味着该项目不应再次被选中。这个怎么做?
请提出建议
感谢您宝贵的时间!..
尝试在 setOnItemClicklistener() 中使用此代码
if(listview.getChildAt(selectedPosition).isEnabled())
{
listview.getChildAt(selectedPosition).setEnabled(false);
}
当您将数据元素列表传递给 时BaseAdapter
,在此列表的元素类中添加一个字段,isEnabled
并根据需要将其设置为true
/ false
,然后覆盖如下isEnabled
方法BaseAdapter
:
@Override
public boolean isEnabled(int position) {
return list.get(position).isEnabled;
}
list
您的数据元素对象列表在哪里。
尝试BaseAdapter.isEnabled()
在您的适配器中覆盖,并从您的onItemClick()
.
mlistView.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener()
{
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,long arg3)
{
arg1.setEnabled(false);
}
}
当您单击该项目时,它会触发一个布尔值。什么方法会使用该项目让它检查布尔值是否已被触发,例如设置为 false。然后在您的点击部分使用 BaseAdapter.isEnabled() = false;
或者仅凭该布尔值,他们就永远无法再次单击它。
为了在创建列表时禁用列表项,您必须从 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);
}
}