1

私はAndroidを初めて使用しますが、アクションバーを希望どおりに機能させる方法がわかりません。setContentView間で異なるXMLファイルに変更されるアクションバーの項目をクリックしたいと思います。

次のXMLファイルがあります:activity_main_vertical_view.xml activity_main.xml

(これは、横向きモードで表示できるようにするためではないことに注意してください。layer-landというフォルダーを作成することを認識しています。縦向きモードでxmlファイルを水平方向に表示できるようにしたいので、変更しようとしています。 XML)。

アクションバーに「ビューの変更」項目があり、使用時にXMLを切り替えたいと考えています。しかし、それは機能していません。私は何が間違っているのですか?

私は2つのクラスを持っています:MainActivity.java VerticalView.java

私のManifest.xmlには、VerticalViewに関して次のコードがあります

<activity
    android:name=".VerticalView"
    android:label="@string/title_activity_vertical_view" >
    <meta-data
        android:name="android.support.PARENT_ACTIVITY"
        android:value="com.example.calendar.activity_main" />
</activity>

activity_main.xmlのマイメニューには次のコードがあります。

<item
    android:id="@+id/change_view"
    android:onClick="changeView"
    android:orderInCategory="100"
    android:showAsAction="never"
    android:title="@string/change_view" >
</item>

私のMainActivity.javaには次のコードがあります。

    public class MainActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

    }

    public void changeView(View view) {
        Intent intent = new Intent(view.getContext(), VerticalView.class);
        startActivity(intent);

    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;

    }
}

最後に、私のVerticalView.javaには次のコードがあります。

public class VerticalView extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main_vertical_view);

    }

}
4

1 に答える 1

1

次のルールに従わなかったandroid:onClick

メソッドは、アクティビティでpublicとして宣言し、クリックされたアイテムを示す唯一のパラメーターとしてMenuItemを受け入れる必要があります。

メソッドは、Viewではなく、をパラメータとして受け取りますMenuItem

また、このアプローチはAPIレベル11以降でのみ機能することにも注意してください。下位互換性のために、代わりにスキップandroid:onClickしてオーバーライドすることをお勧めしますonOptionsItemSelected()

于 2012-09-02T11:26:33.337 に答える