我有一个场景,我在操作栏中获得了名称为“click”的菜单项。我想让这个按钮自动点击而不手动点击。有没有一种方法可以让我从 OnCreateView() 访问 android 操作栏菜单项并访问名为“click”的特定菜单项并执行自动单击,就像我们使用方法“performclick()”的按钮一样。
谁能帮我解决这个问题
问问题
6608 次
2 回答
6
您可能使用以下内容来处理菜单项点击:
@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
任何你想模拟按钮点击的地方调用这个函数可能会更漂亮......所以你不需要对按钮的引用,对我来说,这看起来更干净......
于 2013-10-11T08:21:35.587 回答
1
您可以为 MenuItem 创建一个成员变量并在需要时访问它。但它可能为 null,因此请确保在访问之前检查 null。您也可以尝试使用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;
}
}
于 2013-10-11T10:20:01.547 回答