Comment désactiver l'élément de liste particulier dans list-view sous Android? Je veux dire que si une fois que j'ai sélectionné l'un des éléments d'une vue en liste, cet élément est supposé être désactivé, ce qui signifie que cet élément ne devrait plus être sélectionnable. Comment faire ça?
Suggestions s'il vous plaît
Merci pour votre temps précieux! ..
essayez d'utiliser ce code dans setOnItemClicklistener ()
if(listview.getChildAt(selectedPosition).isEnabled())
{
listview.getChildAt(selectedPosition).setEnabled(false);
}
Lorsque vous transmettez une liste d'éléments de données à BaseAdapter
, ajoutez un champ dans la classe d'éléments de cette liste appelée isEnabled
et définissez-le sur true
/false
si nécessaire, puis remplacez la méthode isEnabled
de BaseAdapter
comme ceci:
@Override
public boolean isEnabled(int position) {
return list.get(position).isEnabled;
}
où list
est votre liste d'objets d'élément de données.
Essayez de remplacer BaseAdapter.isEnabled()
dans votre adaptateur et d’appeler cette méthode à partir de votre onItemClick()
.
Afin de désactiver les éléments de liste lors de la création de liste, vous devez sous-classer ArrayAdapter. Vous devez remplacer les méthodes suivantes: isEnabled (int position)
class MenuAdapter extends ArrayAdapter<String> {
public boolean isEnabled(int position) {
// return false if position == positionYouWantToDisable
}
}
Ou en classe d'activité
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);
}
}
Lorsque vous cliquez sur l'élément, indiquez-lui un booléen. Quelle méthode utilisera cet élément pour vérifier si le booléen a été déclenché, défini sur false par exemple. Ensuite, dans votre portion au clic, utilisez BaseAdapter.isEnabled () = false;
Ou, avec ce seul booléen, ils ne peuvent plus jamais cliquer dessus.
mlistView.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener()
{
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,long arg3)
{
arg1.setEnabled(false);
}
}