長いクリックを選択すると、ListViewアイテムのテキストにアクセスする必要があります。古いAndroidバージョンでは、以下のコードでコンテキストメニューを使ってこれを正常に実行しました。コンテキスト・アクション・バーからListViewアイテムのテキストにアクセスする
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.context_menu, menu);
}
@Override
public boolean onContextItemSelected(MenuItem item) {
AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
String text = ((TextView) info.targetView).getText().toString();
switch (item.getItemId()) {
case R.id.getText:
getText(text);
return true;
default:
return super.onContextItemSelected(item);
}
}
は、新しいAndroidのバージョンでは、しかし、私は、コンテキストアクションバーでこれを行うしたいと思いますが、バーの項目を選択した後、選択したテキストを抽出する方法を見つけ出すことはできません。以下のコードは動作しません。
myListView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL);
myListView.setMultiChoiceModeListener(new MultiChoiceModeListener() {
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
String text = ((TextView) info.targetView).getText().toString();
switch (item.getItemId()) {
case R.id.contextDelete:
getText(text);
return true;;
default:
return false;
}
}
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
MenuInflater inflater = mode.getMenuInflater();
inflater.inflate(R.menu.context_menu, menu);
return true;
}
//Other actionmode methods...
});
コンテキストアクションバーは大丈夫現れ、それから項目を選択する際、これは明らかに、コンテキストメニューではなく、アクションバーのために作られたので、私は、AdapterContextMenuInfoラインでNullPointerExceptionが得られます。おそらくアクションバーのためにこれに相当するものはありますか?または、この場合ListViewアイテムテキストを取得するにはどうすればよいですか?ありがとう。 ListView
上
ありがとう、サンプルプロジェクトが私を助けました!しかし別の質問ですが、アイテムが選択されたことをどのように見えるようにするのですか?私のために、すべてのアイテムは選択した後でも同じように見えます。 – mattboy
@mattboy:「別の質問ですが、アイテムが選択されていることをどのように見えるようにしますか?」 - 行レイアウトで何かをやる。サンプルプロジェクトでは、右側にチェックマークがあり、アクションモードに何が影響を及ぼすのかを判断するために行をチェックしたり、チェックを外したりします。 Gmailの場合は、左側のチェックボックスを使用します。 – CommonsWare
どのように各ListViewアイテムのTextViewからテキストを取得できますか? –