gpt4 book ai didi

java - OnActivityResult 中启动 Activity 给出空指针

转载 作者:行者123 更新时间:2023-12-01 18:11:14 27 4
gpt4 key购买 nike

我有一个 mainactivity 和另外两个 Activity LoginActivity 和 ListTendersActivity。我希望在进入 ListTendersActivity 之前获得成功的登录状态。

这是 list

 <application
android:name="com.example.secondprj.model.ApplicationData"
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".ListTendersActivity"
android:label="@string/title_activity_listtenders" >

</activity>
<activity
android:name=".LoginActivity"
android:label="@string/title_activity_login"
android:windowSoftInputMode="adjustResize|stateHidden" >
</activity>


</application>

因此,我为 LoginActivity 调用了 startActivityForResult()。在 OnActivityResult 中,我从 LoginActivity 获得了正确的结果。此后我希望开始新 Activity ListTendersActivity。

这是代码 fragment

    @Override  
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == 1)//right activity
{
ResponseData response = (ResponseData) data.getSerializableExtra("Response");
if(response.getStatus().equals("success"))//login successfull
{
Intent listIntent = new Intent(super.getApplicationContext(), ListTendersActivity.class);
//listIntent.p
startActivity(new Intent(this.getApplicationContext(), ListTendersActivity.class));
}
}

}

我收到 startActivity 的空指针异常

LogCat 条目

 09-29 18:30:18.971: E/AndroidRuntime(5401):    at android.content.ContextWrapper.getApplicationContext(ContextWrapper.java:109)


I have added the super.oncreate(... in the ListTendersActivity.

Any pointers in the right direction are welcome.
EDIT::

09-29 18:55:14.051: D/Post(9953): {"Status":"success"}
09-29 18:55:14.061: I/System.out(9953): {"Status":"success"}
09-29 18:55:14.096: D/configure(9953): success
09-29 18:55:14.416: D/dalvikvm(9953): GC_FOR_ALLOC freed 295K, 12% free 11122K/12632K, paused 16ms, total 16ms
09-29 18:55:15.036: E/MoreInfoHPW_ViewGroup(9953): Parent view is not a TextView
09-29 18:55:54.986: D/AndroidRuntime(9953): Shutting down VM
09-29 18:55:54.986: W/dalvikvm(9953): threadid=1: thread exiting with uncaught exception (group=0x41db6700)
09-29 18:55:55.061: E/AndroidRuntime(9953): FATAL EXCEPTION: main
09-29 18:55:55.061: E/AndroidRuntime(9953): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.secondprj/com.example.secondprj.ListTendersActivity}: java.lang.NullPointerException
09-29 18:55:55.061: E/AndroidRuntime(9953): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2219)
09-29 18:55:55.061: E/AndroidRuntime(9953): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2349)
09-29 18:55:55.061: E/AndroidRuntime(9953): at android.app.ActivityThread.access$700(ActivityThread.java:159)
09-29 18:55:55.061: E/AndroidRuntime(9953): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1316)
09-29 18:55:55.061: E/AndroidRuntime(9953): at android.os.Handler.dispatchMessage(Handler.java:99)
09-29 18:55:55.061: E/AndroidRuntime(9953): at android.os.Looper.loop(Looper.java:176)
09-29 18:55:55.061: E/AndroidRuntime(9953): at android.app.ActivityThread.main(ActivityThread.java:5419)
09-29 18:55:55.061: E/AndroidRuntime(9953): at java.lang.reflect.Method.invokeNative(Native Method)
09-29 18:55:55.061: E/AndroidRuntime(9953): at java.lang.reflect.Method.invoke(Method.java:525)
09-29 18:55:55.061: E/AndroidRuntime(9953): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1046)
09-29 18:55:55.061: E/AndroidRuntime(9953): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:862)
09-29 18:55:55.061: E/AndroidRuntime(9953): at dalvik.system.NativeStart.main(Native Method)
09-29 18:55:55.061: E/AndroidRuntime(9953): Caused by: java.lang.NullPointerException
09-29 18:55:55.061: E/AndroidRuntime(9953): at android.content.ContextWrapper.getApplicationContext(ContextWrapper.java:109)
09-29 18:55:55.061: E/AndroidRuntime(9953): at com.example.secondprj.ListTendersActivity.<init>(ListTendersActivity.java:32)
09-29 18:55:55.061: E/AndroidRuntime(9953): at java.lang.Class.newInstanceImpl(Native Method)
09-29 18:55:55.061: E/AndroidRuntime(9953): at java.lang.Class.newInstance(Class.java:1130)
09-29 18:55:55.061: E/AndroidRuntime(9953): at android.app.Instrumentation.newActivity(Instrumentation.java:1078)
09-29 18:55:55.061: E/AndroidRuntime(9953): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2210)
09-29 18:55:55.061: E/AndroidRuntime(9953): ... 11 more

编辑2:::

    public class ListTendersActivity extends Activity implements OnClickListener
{
private DBManager mngr = new DBManager(getApplicationContext());
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_listtenders);
boolean success = false;
int count = 0;


....

@Override
public void onStart()
{
super.onStart();
..

最佳答案

我不知道什么super.getApplicationContext()返回,如果有的话。但您只想使用您的 Activity Context那里。但既然你正在调用一个新的 Intent下面,您可以删除该行,我建议使用 Activity Context而不是应用程序。

所以将其更改为

ResponseData response = (ResponseData) data.getSerializableExtra("Response");
if(response.getStatus().equals("success"))//login successfull
{
startActivity(new Intent(MainActivity.this, ListTendersActivity.class));
}

根本问题是

private  DBManager mngr = new DBManager(getApplicationContext());

您正在尝试访问Context在不可用的方法之外。将其更改为

private  DBManager mngr;

然后在 onCreate() 内实例化它

@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_listtenders);
boolean success = false;
int count = 0;

// initialize it here
DBManager mngr = new DBManager(getApplicationContext());
}

关于java - OnActivityResult 中启动 Activity 给出空指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32844771/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com