无法开始新活动

时间:2014-06-09 18:04:24

标签: java android nullpointerexception android-activity

每次我尝试启动新活动时,都会发生错误(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);

3 个答案:

答案 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()。