0

首先,我是 Android 编程和 StackOverflow 的新手!!

我动态地创建了一个 ListView,我的意思是,我用文件中的行加载列表。

现在,我想做的是在单击项目时启动菜单,例如选项菜单。

我进行了搜索,最简单的方法是使用 inflate 方法,但是它使用菜单作为参数。但是,我已经使用 OnItemClick 设置了一个侦听器,它使用 AdapterView、View arg1、int arg2 和 long arg3 作为参数,但我需要一个指向 inflate 方法的菜单...:S

这是mainactivity的代码:

public void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.menu);

   ListView list = (ListView) findViewById(R.id.listView1);

   func = getTurmas();
   list.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, func));

   list.setOnItemClickListener(new AdapterView.OnItemClickListener()  {  

            public void onItemClick(AdapterView<?> arg0, View arg1,
                    int arg2, long arg3) {
                //System.out.println("teste");
                MenuInflater inflater = getMenuInflater();
                inflater.inflate(R.menu.menu_showup, null);
               //my problem is here,instead of NULL I should put a menu, but how?

            }  
          });        
}

注意:在菜单文件夹中,我创建了包含 3 个项目的菜单

提前感谢您的帮助

此致,

卡洛兹

4

1 回答 1

0

创建ContextMenu将让您以最佳方式设置菜单以listView

这应该可以解决问题。不要忘记: registerForContextMenu(lvUsers);

ListView list = (ListView)findViewById(R.id.listView1);
func=getTurmas();
list.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, android.R.id.text1,func));
registerForContextMenu(list);

public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo)
{
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.context_menu, menu);
}

public boolean onContextItemSelected(MenuItem item) 
{
AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
switch (item.getItemId())
 {
 case R.id.edit:
 editNote(info.id);
 return true;
 case R.id.delete:
 deleteNote(info.id);
 return true;
 default:
 return true;     
 }
 return super.onContextItemSelected(item);
}

res/menu/context_menu.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/edit"
      android:title="@string/edit" />
<item android:id="@+id/delete"
      android:title="@string/delete" />
</menu>
于 2013-01-06T17:13:42.003 回答