所以我正在使用Android的RibbonMenu库。我想在选择menuItem后开始一个新的活动。这是我的menu / main.xml文件
`
<item android:id="@+id/tactics" android:title="Tactics" android:icon="@drawable/ic_launcher"></item>
<item android:id="@+id/item2" android:title="Players" android:icon="@drawable/ic_launcher"></item>
<item android:id="@+id/item3" android:title="Teams" android:icon="@drawable/ic_launcher"></item>
<item android:id="@+id/item4" android:title="In-Game" android:icon="@drawable/ic_launcher"></item>
`
这是我尝试从主要活动开始活动的方式。
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == android.R.id.home){
rbmView.toggleMenu();
}
if (id == R.id.tactics){
// I added a Toast here to print something random. But looks like this is never even getting recognized.
Intent i = new Intent(this, TouchlineInstructionActivity.class);
this.startActivity(i);
}
return true;
}
这是我的新活动。
`公共类TouchlineInstructionActivity扩展Activity实现iRibbonMenuCallback {
private RibbonMenuView rbmView;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_touchline_instruction);
rbmView = (RibbonMenuView) findViewById(R.id.ribbonMenuView1);
rbmView.setMenuClickCallback(this);
rbmView.setMenuItems(R.menu.activity_main);
getActionBar().setDisplayHomeAsUpEnabled(true);}`
我将活动添加到我的androidmanifest文件中,如下所示
`
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".TouchlineInstructionActivity" >
</activity>
</application>`
没有任何错误或任何错误。该应用程序启动并正常工作。但是在单击按钮时,新活动才会启动。关于我在这里做错了什么的想法?
答案 0 :(得分:0)
所以我终于弄清楚我做错了什么。老实说,这是一个非常愚蠢的错误。所以这里,这段代码就在这里
if (id == R.id.tactics){
// I added a Toast here to print something random. But looks like this is never even getting recognized.
Intent i = new Intent(this, TouchlineInstructionActivity.class);
this.startActivity(i);
}
必须进入 public void RibbonMenuItemClick(int itemId)方法,而不是 onOptionsItemSelected(Item item)方法。对我而言,这是一个非常愚蠢的错误。我甚至不知道我之前的代码是如何理解的。