从Android中的ListView启动选项菜单

时间:2013-01-06 16:45:51

标签: android android-listview

首先,我是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个项目的菜单

提前感谢您提供任何帮助

最诚挚的问候,

Karloz

1 个答案:

答案 0 :(得分: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 /菜单/ 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>