web-dev-qa-db-fra.com

Comment désactiver l'élément de liste particulier dans list-view sous Android?

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! ..

12
prabu

essayez d'utiliser ce code dans setOnItemClicklistener ()

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

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

list est votre liste d'objets d'élément de données.

19
Kammaar

Essayez de remplacer BaseAdapter.isEnabled() dans votre adaptateur et d’appeler cette méthode à partir de votre onItemClick().

9
RobinBobin

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

}

0

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.

0
NightSkyCode
 mlistView.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener()
{

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