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! ..
verwenden Sie diesen Code in setOnItemClicklistener ().
if(listview.getChildAt(selectedPosition).isEnabled())
{
listview.getChildAt(selectedPosition).setEnabled(false);
}
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.
Versuchen Sie, BaseAdapter.isEnabled()
in Ihrem Adapter zu überschreiben und diese Methode von Ihrer onItemClick()
aus aufzurufen.
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.
mlistView.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener()
{
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,long arg3)
{
arg1.setEnabled(false);
}
}