在Android中切换活动时出现运行时错误

时间:2011-03-31 20:45:56

标签: java android

当我按下应该更改活动的按钮时出现运行时错误:

package com.example.LocationTracker;

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

public class LocationTracker extends Activity{ /** Called when the activity is first created. */

Button btn_Tracker;
Button btn_Display_Map;
Context context;


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    context = getApplicationContext();
    btn_Tracker = (Button)findViewById(R.id.btn_Tracker);


    btn_Tracker.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {
        //setContentView(R.layout.trackeractivity);
        Intent myIntent1 = new Intent(view.getContext(),   TrackerActivity.class);
        context.startActivity(myIntent1);
        }});
}

class TrackerActivity extends Activity {

//Your member variable declaration here

// Called when the activity is first created.
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.trackeractivity);
}
}

我在maniefest文件中添加了所有内容

<activity android:name=".TrackerActivity" android:label="@string/app_name"/>

<activity android:name=".DisplayMapActivity" android:label="@string/app_name"/>

</application>

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

我认为TrackerActivity需要public,这意味着它也需要在自己的文件中。

答案 1 :(得分:1)

您不应该使用getApplicationContext()来启动活动。每个活动都是一个上下文,因此不需要拥有Context的成员实例。尝试像这样重写OnClickListener的onClick方法

public void onClick(View view) {
    Intent myIntent1 = new Intent(LocationTracker.this, TrackerActivity.class);
    LocationTracker.this.startActivity(myIntent1);
    }});

另外,请参阅this文档,了解何时使用应用程序上下文。