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 ite
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.
try using this code in setOnItemClicklistener()
if(listview.getChildAt(selectedPosition).isEnabled())
{
listview.getChildAt(selectedPosition).setEnabled(false);
}
Try overriding BaseAdapter.isEnabled()
in your adapter, and calling this method from your onItemClick()
.
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);
}
}
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.
mlistView.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener()
{
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,long arg3)
{
arg1.setEnabled(false);
}
}