1

リストのコンテキストメニューを作成しようとしています。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" 
android:orientation="vertical" >

<ListView 
        android:id="@+id/list"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">
</ListView>

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    // setContentView(R.layout.activity_main);
    content = new ArrayList<HashMap<String,String>>();

    ListView list = (ListView)findViewById(R.id.list);
    registerForContextMenu(list);
}    

になるとregisterForContextMenu(list);、実行時エラーが発生します。

もう1つandroid:id="@androidid/list"、XMLで使用している場合、リストを参照するにはどうすればよいですか?ListViewを試しlist = (ListView)findViewById(android.R.id.list);ましたが、コンテキストメニューへの登録でエラーが発生します。

4

1 に答える 1

0

以下のコードを確認してください

 @Override  
public void onCreate(Bundle savedInstanceState) {  
    super.onCreate(savedInstanceState);  
    setContentView(R.layout.main);  

    lview3 = (ListView) findViewById(R.id.listView3);  

    adapter = new ListviewAdapter(this, month, desc, icons);  
         // set here your listview adapter value
    lview3.setAdapter(adapter);  

    //for context menu
    registerForContextMenu(lview3);

}

//start from here context menu//

@Override
public void onCreateContextMenu(ContextMenu menu, View v,
        ContextMenuInfo menuInfo) {
    super.onCreateContextMenu(menu, v, menuInfo);
    menu.setHeaderTitle("select");
    menu.add(0, v.getId(), 0, "Action 1");
    menu.add(0, v.getId(), 0, "Action 2");
    menu.add(0, v.getId(), 0, "Action 3");
}


@Override
public boolean onContextItemSelected(MenuItem item) {
    if (item.getTitle() == "Action 1") {
        //
    } else if (item.getTitle() == "Action 2") {
        //
    } else {
        return false;
    }
    return true;
}

幸運を。

于 2012-08-25T12:40:03.353 に答える