1

こんにちは、ドロイド開発者の皆さん!しばらく前から頭を悩ませている問題があります。Learn'nを進めることができるように、誰かが私を助けてくれることを願っています。

ContextMenu を SimpleAdapter に接続できません。私は広範な検索を行いましたが、この問題を解決するための「点をつなぐ」ことはできません。私は、simpleadapter や ContextMenu で特別なことをしていません。

リストビューの onListItemClick がリストにロードした ID を返すため、私のセットアップは正しいように見えるので、すべてが適切にセットアップされていることがわかります。

これは、ListActivity を拡張するパブリック クラスです。

これが私がこれまでに持っているものです...

My ROW.xml リストはここに正常にロードされます

...<ListView
android:id="@id/android:list"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_weight="1"
    android:drawSelectorOnTop="false"/>
<TextView
    android:id="@id/android:empty"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:text="No data"/>

SimpleAdapter スニペット。これはうまくいきます。

 SimpleAdapter notes = new SimpleAdapter(
            this,
            resourceNames,
            R.layout.list_question_row,
            new String[] { "qid", "line1","line2", "img", "img2" },
            new int[] { R.id.question_id, R.id.text1, R.id.text2, R.id.img, R.id.img2 } );
    ;
    setListAdapter( notes );

ここで物事が崩壊します。setOnCreateContextMenuListener を SimpleAdapter / ListView に接続する方法がわかりません。

また、R.id.list が Eclipse によって取得されていません。レイアウト XML の ID を @android:id/list に切り替えてみましたが、うまくいかないようです。ListView リストの ID への参照を取得できないようです。

    setOnCreateContextMenuListener(new OnCreateContextMenuListener(){
    @Override 
 public void onCreateContextMenu(ContextMenu menu, View v,  ContextMenuInfo menuInfo) {  
     if (v.getId()==R.id.list) {  
         AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo)menuInfo;  
         menu.setHeaderTitle("Action Menu");  
         menu.add(0, MENU_EDIT, 0, "Edit");  
         menu.add(0, MENU_DELETE, 0,  "Delete");
    }  
 }; //end of onCreateContextMenu

これが簡単に解決できることを願っています!ご協力いただきありがとうございます。

4

1 に答える 1

1

の代わりにR.id.list、 を試してくださいandroid.R.id.list

于 2011-04-05T21:49:40.333 に答える