1

你好,我的 Droid 开发者伙伴们!我有一个问题已经困扰我一段时间了。我希望有人可以帮助我,这样我就可以继续学习。

我无法将 ContextMenu 连接到我的 SimpleAdapter。我进行了广泛的搜索,但找不到或“连接点”来解决这个问题。我没有对 simpleadapter 和 ContextMenu 做任何花哨的事情。

我的设置似乎正确,因为列表视图的 onListItemClick 返回了我已加载到列表中的 ID,因此我知道一切都已正确设置。

这是一个扩展 ListActivity 的公共类

这是我到目前为止所拥有的...

我的 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 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。

此外,Eclipse 没有获取 R.id.list。我尝试将布局 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 回答