webentwicklung-frage-antwort-db.com.de

Wie kann ich ein bestimmtes Listenelement in der Listenansicht in Android deaktivieren?

Wie kann ich ein bestimmtes Listenelement in der Listenansicht in Android deaktivieren? Ich meine, wenn ich einmal eines der Elemente aus einer Listenansicht ausgewählt habe, wird angenommen, dass dieses Element deaktiviert ist, was bedeutet, dass das Element nicht wieder auswählbar sein sollte. Wie macht man das?

Vorschläge bitte

Vielen Dank für Ihre wertvolle Zeit! ..

12
prabu

verwenden Sie diesen Code in setOnItemClicklistener ().

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

Wenn Sie eine Liste von Datenelementen an BaseAdapter übergeben, fügen Sie in der Elementklasse dieser Liste mit dem Namen isEnabled ein Feld hinzu und setzen Sie es nach Bedarf auf true/false. Überschreiben Sie dann die isEnabled-Methode der BaseAdapter wie folgt:

@Override
public boolean isEnabled(int position) {

    return list.get(position).isEnabled;
}

dabei ist list Ihre Liste der Datenelementobjekte.

19
Kammaar

Versuchen Sie, BaseAdapter.isEnabled() in Ihrem Adapter zu überschreiben und diese Methode von Ihrer onItemClick() aus aufzurufen.

9
RobinBobin

Um Listenelemente bei der Listenerstellung zu deaktivieren, müssen Sie eine Unterklasse von ArrayAdapter erstellen. Sie müssen die folgenden Methoden überschreiben: isEnabled (int position)

class MenuAdapter extends ArrayAdapter<String> {

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

}

Oder in der Aktivitätsklasse

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

}

Wenn Sie auf das Element klicken, wird ein boolescher Wert festgelegt. Wenn Sie die Methode verwenden, um zu prüfen, ob der boolesche Wert ausgelöst wurde, setzen Sie den Wert auf false. Dann verwenden Sie in Ihrem On-Click-Abschnitt BaseAdapter.isEnabled () = false; 

Oder mit nur diesem Boolean allein können sie nie wieder klicken.

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

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