Twoje pytanie jest bardzo podobne do this one, ale wygląda na to, że nie jest to dokładny duplikat.
Zauważyliśmy, że klasa ListActivity nie ma metody nadpisania specjalnie dla tego przypadku.
Aby dodać tę funkcjonalność jako metoda A ręcznym, klasa powinna implementować interfejs AdapterView.OnItemLongClickListener
, a następnie można dodać nadpisanie onItemLongClick()
metoda, która działa podobnie jak onListItemClick()
metoda obejścia już masz, ale reaguje na długich kliknięć .
Wystarczy upewnić się, że postępujesz zgodnie z instrukcjami z this answer, należy użyć android:longClickable="true"
w xml układu lub zadzwoń listview.setLongClickable(true);
Przykład:
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();
}
//....................
Czy możesz spróbować wyjaśnić, co chcesz robić w inny sposób, z większą ilością szczegółów? Twój przykładowy kod nie wydaje się niczego wykonywać, więc trudno jest zgadnąć ... –
Potrzebuję funkcji, która po kliknięciu długiego czasu (np. 2 sekundy) na pozycję w widoku listy spowoduje, że inne moje kody w funkcji zostaną wykonane. – Matarata
wypróbowałeś http://stackoverflow.com/questions/8846707/how-to-implement-a-long-click-listener-on-a-listview? –