How to disable the particular list item in list-view in android?

北城以北 提交于 2019-12-03 11:40:28

问题


How to disable the particular list item in list-view in android? I mean if once i selected any one of item from a list-view,that item suppose to be disabled which means that item should not be select-able again. How to do this?

Suggestions please

Thanks for your precious time!..


回答1:


try using this code in setOnItemClicklistener()

if(listview.getChildAt(selectedPosition).isEnabled())
{
    listview.getChildAt(selectedPosition).setEnabled(false);
}



回答2:


When you pass a list of data elements to BaseAdapter, add a field in this list's element class called isEnabled and set it to true/false as needed, then override isEnabled method of BaseAdapter like this:

@Override
public boolean isEnabled(int position) {

    return list.get(position).isEnabled;
}

where list is your list of data element objects.




回答3:


Try overriding BaseAdapter.isEnabled() in your adapter, and calling this method from your onItemClick().




回答4:


When you click the item have it set off a boolean.. And what method would use that item have it check to see if the boolean has been triggered, set to false for example. Then in your on click portion use BaseAdapter.isEnabled() = false;

Or with just that boolean alone they can never click it again.




回答5:


 mlistView.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener()
{

 public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,long arg3)
{
   arg1.setEnabled(false);
 }
}



回答6:


In order to disable list items on list creation you have to subclass from ArrayAdapter. You have to override the following methods: isEnabled(int position)

class MenuAdapter extends ArrayAdapter<String> {

public boolean isEnabled(int position) {
   // return false if position == positionYouWantToDisable
}

}

Or in Activity class

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

}



来源:https://stackoverflow.com/questions/17919130/how-to-disable-the-particular-list-item-in-list-view-in-android

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!