AdapterContextMenuInfo
ContextMenuの選択されたアイテム情報(idやposition)を取得するときに使用します。
ContextMenuInfoの項がそのままですが再度掲載します。
getIdとかgetPositionとしがちですが、AdapterContextMenuInfo.positionまたはidでいいです。
以下ソース例ではpositionを取得します。
ContextMenuInfoの項がそのままですが再度掲載します。
getIdとかgetPositionとしがちですが、AdapterContextMenuInfo.positionまたはidでいいです。
以下ソース例ではpositionを取得します。
![]() |
| ListView表示 |
![]() |
| ContextMenu表示 |
![]() |
| ContextMenu選択 |
MainActivity.java
public class MainActivity extends Activity{
static final int CONTEXT_MENU1_ID = 0;//ContextMenuアイテムid
static final int CONTEXT_MENU2_ID = 1;//ContextMenuアイテムid
private AdapterContextMenuInfo adapterInfo;
private ListView _contextlistView;
private String _listitem;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView _listview = (ListView) findViewById(R.id.listView1);
String[] _stTest = { "テスト1", "テスト2", "テスト3"};//ListVieの表示アイテム
ArrayAdapter<string> adapter = new ArrayAdapter<string>(this,
android.R.layout.simple_list_item_1, _stTest);
_listview.setAdapter(adapter);//アダプターセット
registerForContextMenu(_listview);//ContextMenu登録
}
public void onCreateContextMenu(ContextMenu menu, View view, ContextMenuInfo info) {
super.onCreateContextMenu(menu, view, info);
adapterInfo = (AdapterContextMenuInfo) info;
_contextlistView = (ListView) view;
_listitem = (String) _contextlistView.getItemAtPosition(adapterInfo.position);//list選択アイテム名を取得
menu.setHeaderTitle("menu");//メニュータイトル
//Menu.add(int groupId, int itemId, int order, CharSequence title)
menu.add(0,CONTEXT_MENU1_ID,0,"トースト表示(アイテム名)");
menu.add(0,CONTEXT_MENU2_ID,0,"トースト表示(アイテムid)");
}
@Override
public boolean onContextItemSelected(MenuItem item) {//ContextMenuアイテム選択イベント
switch (item.getItemId()) {
case CONTEXT_MENU1_ID:
//選択されたアイテム名表示
Toast.makeText(this, _listitem, Toast.LENGTH_SHORT).show();
return true;
case CONTEXT_MENU2_ID:
//選択されたアイテムid表示
Toast.makeText(this, String.valueOf(adapterInfo.id), Toast.LENGTH_SHORT).show();
return true;
default:
return super.onContextItemSelected(item);
}
}
}
res/layout/activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:android1="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:orientation="vertical" > <TextView android1:id="@+id/textView1" android1:layout_width="wrap_content" android1:layout_height="wrap_content" android1:text="ListView" android1:textAppearance="?android:attr/textAppearanceLarge" /> <ListView android1:id="@+id/listView1" android1:layout_width="match_parent" android1:layout_height="wrap_content" > </ListView> </LinearLayout>



0 件のコメント:
コメントを投稿