簡體   English   中英

意圖錯誤無法從其他活動接收值,然后強制關閉

[英]Intent error can not receive value from another activity then force close

任何人都可以提供幫助,我的程序被強制關閉了,是因為出現了空指針錯誤還是其他原因,因為它無法從另一個類獲取值。 誰能告訴我我哪里出錯了?

這送禮者

if(position == 0){

  Intent i = new Intent(ListKategoriKUHAP.this, PasalbyKatUndangKUHAP.class);
  i.putExtra("value1", "1");
     startActivity(i);

}
else
{
if(position == 1){

     Intent i = new Intent(ListKategoriKUHAP.this, PasalbyKatUndangKUHAP.class);
     i.putExtra("value1", "2");
     startActivity(i);

 }

這是接收者

private void setData()
{
     Bundle extras = getIntent().getExtras();
    if (extras != null) 
    {
        String value = extras.getString("value1");
    if(value=="1")
        {
            listKamus = dbHelper.getAllPasalBab1();
        }
     }

    adapter = new ArrayAdapter<Data>(this,
            android.R.layout.simple_expandable_list_item_1, listKamus);
    lv.setAdapter(adapter);

}

getAllPasalBab1()沒問題,我已經嘗試過修改代碼,但是當我使用intent時,它給出了一個錯誤null指針。 有人可以幫我嗎?

這是logcat

02-27 20:20:28.460: E/AndroidRuntime(1750): FATAL EXCEPTION: main

02-27 20:20:28.460: E/AndroidRuntime(1750): Process: com.example.KUHP_KUHAP_KUHperdata, PID: 1750

02-27 20:20:28.460: E/AndroidRuntime(1750): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.KUHP_KUHAP_KUHperdata/com.example.KUHP_KUHAP_KUHperdata.PasalbyKatUndangKUHAP}: java.lang.NullPointerException

02-27 20:20:28.460: E/AndroidRuntime(1750):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195)

02-27 20:20:28.460: E/AndroidRuntime(1750):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)

02-27 20:20:28.460: E/AndroidRuntime(1750):     at android.app.ActivityThread.access$800(ActivityThread.java:135)

02-27 20:20:28.460: E/AndroidRuntime(1750):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)

02-27 20:20:28.460: E/AndroidRuntime(1750):     at android.os.Handler.dispatchMessage(Handler.java:102)

02-27 20:20:28.460: E/AndroidRuntime(1750):     at android.os.Looper.loop(Looper.java:136)

02-27 20:20:28.460: E/AndroidRuntime(1750):     at android.app.ActivityThread.main(ActivityThread.java:5017)

02-27 20:20:28.460: E/AndroidRuntime(1750):     at java.lang.reflect.Method.invokeNative(Native Method)

02-27 20:20:28.460: E/AndroidRuntime(1750):     at java.lang.reflect.Method.invoke(Method.java:515)

02-27 20:20:28.460: E/AndroidRuntime(1750):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)

02-27 20:20:28.460: E/AndroidRuntime(1750):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)

02-27 20:20:28.460: E/AndroidRuntime(1750):     at dalvik.system.NativeStart.main(Native Method)

02-27 20:20:28.460: E/AndroidRuntime(1750): Caused by: java.lang.NullPointerException

02-27 20:20:28.460: E/AndroidRuntime(1750):     at android.widget.ArrayAdapter.getCount(ArrayAdapter.java:330)

02-27 20:20:28.460: E/AndroidRuntime(1750):     at android.widget.ListView.setAdapter(ListView.java:480)

02-27 20:20:28.460: E/AndroidRuntime(1750):     at com.example.KUHP_KUHAP_KUHperdata.PasalbyKatUndangKUHAP.setData(PasalbyKatUndangKUHAP.java:215)

02-27 20:20:28.460: E/AndroidRuntime(1750):     at com.example.KUHP_KUHAP_KUHperdata.PasalbyKatUndangKUHAP.onCreate(PasalbyKatUndangKUHAP.java:34)

02-27 20:20:28.460: E/AndroidRuntime(1750):     at android.app.Activity.performCreate(Activity.java:5231)

02-27 20:20:28.460: E/AndroidRuntime(1750):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)

02-27 20:20:28.460: E/AndroidRuntime(1750):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)

02-27 20:20:28.460: E/AndroidRuntime(1750):     ... 11 more

當extras等於null或value不等於1時, listKamus可能為null ,因為如果條件失敗,您將不會初始化listKamus ,因此請在內部if塊中設置適配器,或者在傳遞給適配器之前將listKamus初始化為:

  // initialize listKamus here
listKamus=.....;
if (extras != null) 
{
    String value = extras.getString("value1");
if(value=="1")
    {
        listKamus = dbHelper.getAllPasalBab1();
         // or set ListView Adapter here
     }
 }

或者也可以使用equals代替==來比較String值。

我不知道這是否有幫助,但是您的listkamus列表為空。 嘗試使用equals(String)方法比較value ,然后嘗試進行以下更正:

listkamus為您的類變量,然后,

private void setData()
{
    Intent mIntent = getIntent();
    if (mIntent != null) 
    {
        String value = mIntent.getStringExtra("value1");
        if(value.equals("1"))
        {
            listKamus = dbHelper.getAllPasalBab1();
        }
     }

    adapter = new ArrayAdapter<Data>(this,
            android.R.layout.simple_expandable_list_item_1, listKamus);
    lv.setAdapter(adapter);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM