1

所以我正在使用来自 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; 

}

这是我的新活动。

`public class 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>`

没有错误或任何东西。该应用程序启动并运行良好。但是在单击按钮时,新活动并没有开始。关于我在这里做错了什么的任何想法?

4

1 回答 1

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)方法。这对我来说是一个非常愚蠢的错误。我什至不知道我以前是如何认为我的代码有意义的。

于 2013-01-14T00:00:52.547 回答