单击按钮打开一个新活动

Posted

技术标签:

【中文标题】单击按钮打开一个新活动【英文标题】:Open a new activity on button click 【发布时间】:2015-02-25 21:43:15 【问题描述】:

当单击按钮“button1”(onClick:one)时,我试图从“MainActivity”打开活动“one”。

这是我的“MainActivity”中的代码:

    public void one(View view) 
        Intent intent1 = new Intent(this, one.class);
        MainActivity.this.startActivity(intent1);
    

这是我的 androidManifeste.xml:

        <application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name="com.example.tictactoe12players.MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <activity
       android:name="com.example.players.one"
       android:label="@string/title_activity_activity1">
      </activity>

但是“activity_activity1.xml”没有打开:当我在模拟器上尝试它时,它写入了 activity1,然后崩溃了。

【问题讨论】:

您是否在 AndroidManifest 中声明了活动一? 【参考方案1】:

要“创建”一个新的 Activity,你必须在你的 AndroidManifest.xml 中声明它,在你的例子中,它看起来像这样:

<activity
    android:name="one"
    android:label="@string/app_name"
</activity>

您必须将这四行放在 部分,如下所示:

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name="one"
        android:label="@string/app_name"
    </activity>

【讨论】:

【参考方案2】:

1.测试是否进入函数

 public void one(View view) 
    Toast.makeText(this, "enter one() function", Toast.LENGTH_SHORT).show();
    (...)

2.试试这个

Activity activity = this;
Intent intent = new Intent(activity, one.class);
activity.startActivity(intent);
activity.finish();

【讨论】:

使用断点跟踪执行调试是最好的方法。不要浪费时间转储代码

以上是关于单击按钮打开一个新活动的主要内容,如果未能解决你的问题,请参考以下文章

按钮单击以打开新表单,如果已经有活动表单正在运行,则不要打开

Eclipse,按钮单击的新活动

如何从简单列表视图的按钮打开新活动

如何从对话框片段中打开新活动

如何使 ListView 中的项目打开一个新的空活动

当前正在使用相同的活动时,从通知栏启动新活动