【问题标题】: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 中声明了活动一?

标签: java android eclipse android-activity onclick


【解决方案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();
    

    【讨论】:

    • 使用断点跟踪执行调试是最好的方法。不要浪费时间转储代码
    猜你喜欢
    • 2013-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-03
    • 2021-10-03
    相关资源
    最近更新 更多