oncreate函数无法启动

时间:2014-08-11 07:07:54

标签: android android-activity

尝试使用我放在主要活动上的按钮从我的主要活动启动另一个活动,现在当点击按钮时它打印“呼叫活动”,所以它工作正常,但是当第二个活动启动时,它似乎它不执行oncreate方法,因为它不打印“start”并且不调用GetCar();方法。它唯一能做的就是显示xml。

启动第二个活动的按钮(打印“呼叫活动”工作正常)

public void allCars(View v){
    setContentView(R.layout.activity_cars_menu);
    System.out.println("call activity");
}

第二个活动代码(不打印“开始”或调用GetCar()。)

public class CarsMenu extends Activity {
    Button btn;
    public static String[] carId;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_cars_menu);
        System.out.println("start");
        GetCar();
    }
}

第二个活动xml(看不到视图列表可能是因为我无法设置文本(不会调用GetCar())。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"

我的所有活动都在清单上,我没有在logcat上收到任何错误。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="${packageName}.${activityClass}" >

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:onClick="btnCarClick"
        android:text="Refresh" />

    <ListView
        android:id="@+id/MlistView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/button1"
        android:layout_centerHorizontal="true" 
        android:layout_alignParentBottom="true">
    </ListView>

</RelativeLayout>

3 个答案:

答案 0 :(得分:0)

您可能想要开始您的活动:

Intent myIntent = new Intent(CurrentActivity.this, NextActivity.class);
startActivity(myIntent);

仅设置内容视图是不够的

答案 1 :(得分:0)

您以错误的方式开始第二个活动,并且只在第一个活动中更改您的视图。

要更改活动,您需要致电

startActivity (Intent intent)

了解更多信息,请阅读

http://developer.android.com/training/basics/firstapp/starting-activity.html

答案 2 :(得分:0)

实际上,您只是在更改当前活动的内容UI。如

setContentView(R.layout.activity_cars_menu);

只做那件事。实际上你的第二项活动从未开始。要开始第二项活动,你应该

Intent i = new Intent (Activity1.this, CarsMenu.class);
startActivity (i);

确保已将CarsMenu活动添加到Android Manifest。