Ihre Frage ist sehr ähnlich zu this one, aber es sieht aus wie es ist kein exaktes Duplikat.
Was Sie bemerkt haben ist, dass die ListActivity Klasse keine Methodenüberschreibung speziell für diesen Fall hat.
Um diese Funktionalität als Methodenüberschreibung hinzufügen möchten, sollten Sie Ihre Klasse die AdapterView.OnItemLongClickListener
Schnittstelle implementieren und dann können Sie die onItemLongClick()
Methode überschreiben, die Sie bereits haben, ebenso wie die onListItemClick()
Methodenüberschreibung wirkt hinzufügen, sondern reagiert auf lange Klicks .
einfach sicher, dass Sie folgen Sie den Anweisungen von this answer, Sie android:longClickable="true"
im Layout XML verwenden müssen, oder rufen Sie listview.setLongClickable(true);
Beispiel:
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();
}
//....................
Könnten Sie versuchen, etwas detaillierter zu erklären, was Sie tun möchten? Ihr Beispiel Code scheint nichts zu erreichen, so ist es schwer zu erraten ... –
Ich brauche eine Funktion, die, wenn ich lange Zeit (wie 2 Sekunden) auf ein Element in listview klicken Sie dann meine anderen Codes in Funktion ausführen. – Matarata
hast du versucht http://stackoverflow.com/questions/8846707/how-to-implement-a-long-click-listener-on-a-listview? –