当我按下应该更改活动的按钮时出现运行时错误:
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>
有什么想法吗?
答案 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文档,了解何时使用应用程序上下文。