La tua domanda è molto simile a this one, ma sembra che non sia un duplicato esatto.
Quello che hai notato è che la classe ListActivity non ha un override specifico per questo caso.
Per aggiungere questa funzionalità come metodo di sostituzione, la classe deve implementare l'interfaccia AdapterView.OnItemLongClickListener
, e poi si può aggiungere il onItemLongClick()
metodo di sostituzione, che agisce proprio come la onListItemClick()
metodo di sostituzione avete già, ma risponde a lunghe clic .
Basta fare in modo di seguire le istruzioni da this answer, è necessario utilizzare android:longClickable="true"
nel xml di layout, o chiamare listview.setLongClickable(true);
Esempio:
public class MainActivity extends ListActivity implements AdapterView.OnItemLongClickListener {
ListView listview;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView listview = (ListView) findViewById(R.id.list);
listview.setLongClickable(true);
}
@Override
public boolean onItemLongClick(AdapterView<?> l, View v,
final int position, long id) {
Toast.makeText(this, "long clicked pos: " + position, Toast.LENGTH_LONG).show();
return true;
}
protected void onListItemClick(ListView l, View v, final int position, long id) {
super.onListItemClick(l, v, position, id);
Toast.makeText(this, "short clicked pos: " + position, Toast.LENGTH_LONG).show();
}
//....................
fonte
2015-07-05 07:29:28
Puoi provare a spiegare cosa vuoi fare in un modo diverso, con più dettagli? Il tuo codice di esempio non sembra realizzare nulla, quindi è difficile indovinare ... –
Ho bisogno di una funzione che quando faccio clic su molto tempo (come 2 secondi) su un oggetto in listview, vengono eseguiti gli altri miei codici in funzione. – Matarata
hai provato http://stackoverflow.com/questions/8846707/how-to-implement-a-long-click-listener-on-a-listview? –