android - 如何使用android actionbar改变contentsView

标签 android

我是 android 的新手,我只是不知道如何让操作栏按照我想要的方式工作。我想单击操作栏上的一个项目,该项目在 setContentView 和不同的 XML 文件之间变化。

我有以下 XML 文件: activity_main_vertical_view.xml activity_main.xml

(请注意,这不是为了让我可以在横向模式下看到它,我知道制作一个名为 layer-land 的文件夹。我希望我的 xml 文件可以在纵向模式下水平查看,这就是为什么我尝试更改 XML)。

我的操作栏中有一个“更改 View ”项目,我想在使用它时切换 XML。但是它不起作用。我做错了什么?

我有 2 个类: 主 Activity .java 垂直 View .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);

    }

}

最佳答案

你没有遵守 android:onClick 的规则:

The method must be declared in the activity as public and accept a MenuItem as its only parameter, which indicates the item clicked.

您的方法将 View 作为参数,而不是 MenuItem

另请注意,此方法仅适用于 API 级别 11 及更高级别。为了向后兼容,您可能希望跳过 android:onClick 并改写 onOptionsItemSelected()

关于android - 如何使用android actionbar改变contentsView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12234188/

相关文章:

安卓监控应用

java - wso2 mb 2.2.0 启动错误

java - 替换时如何保存 fragment 内容?

android - 如何在 Android 中处理来电事件

android - 如何在 Android 上的特定时间段的一日日历 View 中显示日历事件?

android - Gradle 构建 Android 项目 "Could not resolve all dependencies"错误

android - 找不到参数multiDexEnabled()的方法[true]

android - 在应用程序中打开 Assets 文件 pdf

android - com.android.support :design with androidX (1. 0.2)

android - ConstraintLayout ListView RTL 有些行不是RTL