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 extends Activity implement 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);
}

onOptionsItemSelected(Item item)メソッドではなくpublic void RibbonMenuItemClick(int itemId)メソッドに入る必要があります。それは私の側の本当にばかげた間違いでした。以前は自分のコードがどのように理にかなっていると思っていたのかさえわかりません。

于 2013-01-14T00:00:52.547 に答える