首先,我是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
答案 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>