2013-07-29 8 views
11

Come disabilitare la particolare voce dell'elenco in elenco-vista in Android? Voglio dire se una volta selezionato uno qualsiasi degli elementi da una vista elenco, quell'elemento dovrebbe essere disabilitato, il che significa che l'elemento non dovrebbe essere nuovamente selezionabile. Come fare questo?Come disabilitare la particolare voce dell'elenco in elenco-vista in Android?

suggerimento per favore

Grazie per il vostro tempo prezioso! ..

+0

stai usando adattatore personalizzato per ListView ?? –

+0

@ArmaanStranger yes – prabu

+0

Quindi è necessario salvare quale elemento è selezionato e quindi modificare view.enable = false. e quando stai caricando o aggiornando listview, controlla una condizione che, se l'elemento della vista è uguale all'elemento cliccato, disabilitalo. –

risposta

20

provare a utilizzare questo codice in setOnItemClicklistener()

if(listview.getChildAt(selectedPosition).isEnabled()) 
{ 
    listview.getChildAt(selectedPosition).setEnabled(false); 
} 
9

Prova sovrascrivendo BaseAdapter.isEnabled() l'adattatore, e chiamando questo metodo dal onItemClick().

0

Quando si fa clic sull'elemento, si attiva un valore booleano. E quale metodo utilizzerebbe quell'elemento per verificare se il booleano è stato attivato, impostato su false ad esempio. Quindi nella parte in cui fai clic usa BaseAdapter.isEnabled() = false;

O con questo solo booleano non possono mai più fare clic su di esso.

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

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

Quando si passa un elenco di elementi di dati per BaseAdapter, aggiungere un campo nella classe elemento di questa lista denominata isEnabled e impostarlo su true/false se necessario, poi sovrascrivere isEnabled metodo di BaseAdapter simili:

@Override 
public boolean isEnabled(int position) { 

    return list.get(position).isEnabled; 
} 

dove list è l'elenco di oggetti dell'elemento dati.

0

Per disabilitare le voci di elenco nella creazione di elenchi, è necessario sottoclasse da ArrayAdapter. Devi eseguire l'override dei seguenti metodi: isEnabled (int position)

class MenuAdapter extends ArrayAdapter<String> { 

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

}

o in classe di attività

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

}

Problemi correlati