0

我以前做过这个,很幸运,所以我不明白为什么我现在把它搞砸了。

很简单,从主要活动开始第二个活动。

在我的主要活动(Test.class)中:

Intent s = new Intent(Test.this, Settings.class);
this.startActivity(s);

我的设置活动(Settings.class):

public class Settings extends Activity {
    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        setContentView(R.layout.settings);
    }
}

设置.xml:

<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout 
    android:layout_height="wrap_content" 
    android:layout_width="fill_parent" 
    android:orientation="horizontal" 
    xmlns:android="http://schemas.android.com/apk/res/android"> 

    <TextView 
        android:id="@+id/test"
        android:text="Test"
    /> 

</LinearLayout>

这是 AndroidManifest.xml 文件的应用程序部分:

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name" >
    <activity
        android:name="com.frank.test.Test"
        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.frank.test.Settings"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>


</application>

这只是崩溃。没有日志条目,什么都没有。即使我用带有调试标签的 try-catch 来围绕意图/活动的创建和启动。

我是瞎子还是聋子,我知道。但我真的很讨厌这些地方没有任何错误的崩溃。

顺便说一下,我在主要的 Acitvity 的 onCreate() 方法中开始了意图。

更新:我还尝试将第二个活动添加到 AndroidManifest.xml 类中,如下所示:

<activity android:name=".Settings"></activity>
4

4 回答 4

3

你需要修复的东西很少。

首先,您的布局:

您需要为您定义宽度和高度,TextView如下所示:

<TextView 
    android:id="@+id/test"
    android:text="Test"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" /> 

其次,你需要修复你的AndroidManifest.xml. 您没有正确定义您的两个活动。见下文:

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name" >

<!-- Test activity -->
    <activity
        android:name="com.frank.test.Test"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

<!-- Settings activity -->
    <activity
        android:name="com.frank.test.Settings"
        android:label="@string/app_name" >
    </activity>
</application>
于 2012-09-11T13:41:04.340 回答
0

更改清单如下:

<activity
    android:name=".Settings"/>

于 2012-09-11T13:42:43.533 回答
0

您应该在清单文件中指定您的设置活动,而不为它指定category.LAUNCHER。它应该如下所示:

<activity android:name=".Settings"/>

关于“无日志条目” - 您似乎正在查看您的应用程序的日志(由您的应用程序标签过滤)。您可以禁用任何日志过滤,并且应该在 logcat 中看到此崩溃的错误消息和堆栈跟踪。

于 2012-09-11T13:43:07.197 回答
0

AndroidManifest.xml 中的两个启动器活动?,2个相同的班级名称?这里是错的

 <activity
        android:name="com.frank.test.Test"
        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.frank.test.Test"
        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.frank.test.Test"
        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.frank.test.Settings"></activity>
于 2012-09-11T13:44:18.990 回答