Android:多项活动

时间:2012-09-11 13:37:15

标签: android android-intent android-activity

我以前做过这件事,幸运的是,所以我无法理解为什么我现在搞砸了。

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

在我的主要活动(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);
    }
}

的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来创建和启动intent / activity也不行。

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

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

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

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

4 个答案:

答案 0 :(得分:2)

你需要修理的东西很少。

首先,您的布局:

您需要为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>

答案 1 :(得分:0)

更改您的清单如下:                                                      

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

答案 2 :(得分:0)

您应该在清单文件中指定您的设置活动,不指定 category.LAUNCHER 。 它应该是这样的:

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

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

答案 3 :(得分: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>