あなたの質問はこれと非常に似ていますが、完全に重複していないようです。
お気づきのことと思いますが、ListActivityクラスには、このケース専用のメソッド オーバーライドがありません。
この機能をメソッド オーバーライドとして追加するには、クラスでAdapterView.OnItemLongClickListener
インターフェイスを実装する必要があります。その後、メソッド オーバーライドを追加できます。これは、既存onItemLongClick()
のメソッド オーバーライドと同じように機能しonListItemClick()
ますが、長いクリックに応答します。
この回答の指示に従っていることを確認してくださいandroid:longClickable="true"
。レイアウトxmlで使用するか、呼び出す必要がありますlistview.setLongClickable(true);
例:
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();
}
//....................