在android中的另一个类中启动一个活动

时间:2011-05-16 15:20:35

标签: android layout android-activity android-intent

我正在探索和学习如何编程Android手机,现在我有2个类(MainActivity和SubActivity和2个布局(主要和子活动)。

在MainActivity中,我有一个按钮,当我点击按钮时,我想显示子活动布局并执行SubActivity活动,这样我就可以点击那里的按钮并返回MainActivity。

以下是MainActivity的代码

package com.test.activities;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class MainActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    Button btnSubActivity = (Button)findViewById(R.id.btnCallSubActivity);
    btnSubActivity.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            Intent intent = new Intent();
            intent.setClass(getApplicationContext(), SubActivity.class);
            startActivity(intent);
        }
    });
}

}

以下是SubActivity中的代码

package com.test.activities;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class SubActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.subactivity);


}

}

以下是main.xml的布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
>
<Button android:text="Call Sub Activity" 
    android:id="@+id/btnCallSubActivity" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content">
</Button>

以下是SubActivity的布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent">
    <Button android:text="Call Main Activity" 
        android:id="@+id/btnCallMainActivity" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content">
   </Button>
</LinearLayout>

单击主布局上的按钮时出现运行时错误。我做错了什么?

3 个答案:

答案 0 :(得分:0)

您在第二个线性布局中缺少android:orientation="vertical"

答案 1 :(得分:0)

请提供日志。但在检查之前,您是否忘记将SubActivity添加到AndroidManifest.xml,如下所示:

<activity android:name=".SubActivity" android:label="Some label"/>

答案 2 :(得分:0)

Intent i = new Intent("com.Android.SubActivity");
StartActivity(i);

//在引号内写出包的路径。希望这有帮助