我有这样的情况,我的动作栏中有一个名为“click”的菜单项。我想要使此按钮自动点击而不需要手动点击。从OnCreateView()方法中是否有一种方式可以访问Android动作栏菜单项,并访问具有名称“click”的特定菜单项,然后执行自动点击,就像我们使用方法“performclick()”的按钮一样。
有人能帮我解决这个问题吗?
我有这样的情况,我的动作栏中有一个名为“click”的菜单项。我想要使此按钮自动点击而不需要手动点击。从OnCreateView()方法中是否有一种方式可以访问Android动作栏菜单项,并访问具有名称“click”的特定菜单项,然后执行自动点击,就像我们使用方法“performclick()”的按钮一样。
有人能帮我解决这个问题吗?
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
if (item.getItemId() == android.R.id.home)
{
this.onBackPressed();
}
}
只需使用正确的菜单项调用onOptionsItemSelected(MenuItem item)
即可...就这样...
要找到您想要点击的项目,只需在菜单创建中使用以下内容:
private MenuItem mItem = null;
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
getSupportMenuInflater().inflate(R.menu.abs_backup, menu);
// get a reference to the item you want to click manually
mItem = menu.findItem(id);
return true;
}
之后只需在需要的地方调用 onOptionsItemSelected(mItem);
即可...
PS:
如果你创建一个函数并在 onOptionsItemSelected
以及需要模拟按钮单击的地方调用该函数会更好看... 这样你就不需要引用该按钮,对我来说,这似乎更加清晰...
Actionbar.setCustomView(R.layout.something);
并根据自己的方便处理整个布局和操作。protected class fragment extends Fragment{
MenuItem searchItem;
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
if(searchItem!=null){
searchItem.setTitle("SEARCH");
searchItem.setOnMenuItemClickListener(menuItemClickListener);
}
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
inflater.inflate(com.sample.R.menu.menu_main, menu);
searchItem = menu.findItem(R.id.search);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int itemId_ = item.getItemId();
if (itemId_ == R.id.search) {
handleYourEvent();
return true;
}
return false;
}
}