每次我尝试启动新活动时,都会发生错误(Java空指针异常)和应用程序fc:我尝试了每一种方式,它只是不起作用!以下是代码的示例:MainAct是第一个活动,NewAct是要启动的活动...... 1-清单:
<activity
android:name="com.example.app.NewAct"
android:label="@string/title_activity_newact" >
<intent-filter>
<action android:name="android.intent.action.NewAct" />
</intent-filter>
</activity>
2-MainAct:
Button bt;
bt = (Button) findViewById (R.id.bt);
bt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent i= new Intent ("com.example.app.NewAct");
startActivity(i);
}
});
我还尝试过其他形式的意图,例如
Intent i= new Intent ("android.intent.action.NewAct");
Intent i= new Intent (this, NewAct.class);
Intent i= new Intent (view.getContext(), StudentInfoActivity.class);
答案 0 :(得分:1)
不要从&#34; view
&#34;获取背景信息。从Activity
获取上下文。无论您需要上下文使用getApplicationContext()
,getActivity()
还是this
。但是,如果您位于Anonymous Inner Class
内,例如View.OnClickListener()
(就像您发布的代码中一样),则无法使用this
,因为this
将指代Anonymous Inner Class
你所在的Context
。
通常的做法是将private member variable
存储在onCreate()
中,在....
private Context mContext;
...
@Override
onCreate(Bundle savedInstanceState){
mContext = this;
}
内执行此操作...
实施例
Activity
^通过执行此操作,您可以在整个活动中自由使用上下文变量,而无需担心。
在您拥有Context
变量之后,尝试这样的操作来启动新的 Intent i = new Intent(mContext,
NewAct.class);
startActivity(i);
:
OnClickListener()
^您可以在{{1}}。
中使用此代码答案 1 :(得分:0)
Intent i = new Intent(MainAct.this, NewAct.class);
startActivity(i);
答案 2 :(得分:0)
我认为问题不在于您的Intent.please检查第二个Activity [NewAct.java]的onCreate()。