私がListActivityを持っていると仮定しましょう。今、リストアイテムで長押しイベントをキャッチしたいので、次のコードブロックを使用しましたが(googledの後に取得します)、機能しません!!!助けてください!
public class InboxActivity extends ListActivity {
this.getListView().setOnLongClickListener(new OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
Toast.makeText(InboxActivity.this, "postion: " + getListView().getSelectedItemPosition(), Toast.LENGTH_SHORT).show();
return true;
}
});
}
また、contextmenuを使用してオンラインでいくつかのコードを表示していますが、contextmenuが開いている場所からlistItemの位置を取得する方法がありません。
あなたがすでにあなたの問題を解決したかどうかはわかりませんが、ほぼ確実に解決しましたが、これはうまくいきます
this.getListView().setLongClickable(true);
this.getListView().setOnItemLongClickListener(new OnItemLongClickListener() {
public boolean onItemLongClick(AdapterView<?> parent, View v, int position, long id) {
//Do some
return true;
}
});
this.getListView().setOnItemLongClickListener
が機能するはずです。
(viewitem).setOnLongClickListener(new OnItemLongClickListener() {
@Override
public boolean onLongClick(View v) {
//your code here
return false;
}
}
(これは上記の回答とは少し異なります)
値を取得する方法を知りたいと思います。
listView.setOnItemLongClickListener(new OnItemLongClickListener() {
public boolean onItemLongClick(AdapterView parentView, View childView, int position, long id) {
// this will provide the value
listView.getItemAtPosition(position)
return false;
}
})