2015-09-04 19 views
-2

我使用意向得到空值,因爲我無法進一步編碼。在這裏,我將數據從一個意向發送到下一個,但在這裏不工作。我得到空值,但我將具體數值即temp_id使用意向獲得空值

firstActivity.java

public void onItemClick(AdapterView<?> parent, View v, 
       int position, long id) 
     { 

      super.onItemClick(parent, v, position, id); 

     final Cursor c = (Cursor) mAdapter.getItem(position); 

     String name = c.getString(c.getColumnIndex(Constants.GREETING_NAME)); 
     final int template_id = c.getInt(c.getColumnIndex(Constants.KEY_ID_GREET)); 
     String temp_id=String.valueOf(template_id); 


     goForEdit(temp_id); 

     //confirm 
    Toast.makeText(this, 
      "Name :"+name+" id : " + temp_id , Toast.LENGTH_LONG) 
      .show();  
     } 

     public void goForEdit(String temp_id){ 
      Intent launchSMSTempEdit = new Intent(
        ManageEmailTemplate.this, 
           EmailTempEdit.class); 

      if(!(temp_id==null)) 
      { 
      launchSMSTempEdit.putExtra("temp_id",temp_id); 
      startActivity(launchSMSTempEdit); 
      } 
     } 

下一個活動

@Override 
    public void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 
     setContentView(R.layout.create_template); 




     sms_key_id = getIntent().getStringExtra("called"); 

     if(sms_key_id == null) { 
      sms_key_id = "empty string"; 
     } 

     if (sms_key_id.equalsIgnoreCase("add")) { 
      //do whatever 

     } else { 
     //do whatever 
      sms_key_id="1"; 
     System.out.println("KEY ID==="+sms_key_id); 

     } 



     Toast.makeText(this, "CODE:::"+ mTemplateType + " id =="+ sms_key_id ,   Toast.LENGTH_LONG).show(); 

登錄貓:

09-04 12:23:27.261: I/ActivityManager(1224): Displayed com.cbsinfosys.FieldWorkMobility/.ManageEmailTemplate: +390ms 
09-04 12:23:29.663: E/AndroidRuntime(3606): FATAL EXCEPTION: main 
09-04 12:23:29.663: E/AndroidRuntime(3606): Process: com.cbsinfosys.FieldWorkMobility, PID: 3606 
09-04 12:23:29.663: E/AndroidRuntime(3606): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.cbsinfosys.FieldWorkMobility/com.cbsinfosys.FieldWorkMobility.EmailTempEdit}: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)' on a null object reference 
09-04 12:23:29.663: E/AndroidRuntime(3606):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325) 
09-04 12:23:29.663: E/AndroidRuntime(3606):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2390) 
09-04 12:23:29.663: E/AndroidRuntime(3606):  at android.app.ActivityThread.access$800(ActivityThread.java:151) 
09-04 12:23:29.663: E/AndroidRuntime(3606):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) 
09-04 12:23:29.663: E/AndroidRuntime(3606):  at android.os.Handler.dispatchMessage(Handler.java:102) 
09-04 12:23:29.663: E/AndroidRuntime(3606):  at android.os.Looper.loop(Looper.java:135) 
09-04 12:23:29.663: E/AndroidRuntime(3606):  at android.app.ActivityThread.main(ActivityThread.java:5257) 
09-04 12:23:29.663: E/AndroidRuntime(3606):  at java.lang.reflect.Method.invoke(Native Method) 
09-04 12:23:29.663: E/AndroidRuntime(3606):  at java.lang.reflect.Method.invoke(Method.java:372) 
09-04 12:23:29.663: E/AndroidRuntime(3606):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) 
09-04 12:23:29.663: E/AndroidRuntime(3606):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 
09-04 12:23:29.663: E/AndroidRuntime(3606): Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)' on a null object reference 
09-04 12:23:29.663: E/AndroidRuntime(3606):  at com.cbsinfosys.FieldWorkMobility.EmailTempEdit.onCreate(EmailTempEdit.java:145) 
09-04 12:23:29.663: E/AndroidRuntime(3606):  at android.app.Activity.performCreate(Activity.java:5990) 
09-04 12:23:29.663: E/AndroidRuntime(3606):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106) 
09-04 12:23:29.663: E/AndroidRuntime(3606):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278) 
09-04 12:23:29.663: E/AndroidRuntime(3606):  ... 10 more 
09-04 12:23:29.819: W/ActivityManager(1224): Force finishing activity 1 com.cbsinfosys.FieldWorkMobility/.EmailTempEdit 

回答

3

你是將第一個活動中的密鑰temp_id與身份證,並試圖讀取called這就是爲什麼你在下一個活動中沒有收到它。我下一個活動的變化sms_key_id = getIntent().getStringExtra("called");sms_key_id = getIntent().getStringExtra("temp_id");

+0

thanq sir !!但我再次得到運行時錯誤我添加logcat錯誤 –

+0

不要發佈logcat作爲答案..編輯你的問題,而不是 –

+0

顯示'EmailTempEdit.java'的行145 –

0

更換

if (sms_key_id.equalsIgnoreCase("add")) 

if (sms_key_id!=null && sms_key_id.equalsIgnoreCase("add")) 
+0

沒有改善同樣的錯誤@ rj –

+0

發佈您正在收到錯誤的活動的代碼... –

0

首先 - 您使用的是其他一個關鍵 temp_id發送意圖和獲取價值出來呢鑰匙調用

塞孔d - 從您的日誌中,尋找由引起的,它會告訴您RuntimeException的原因以及有問題的代碼的行號。在你的情況下,它是 EmailTempEdit.java:145

0

得到了問題所在。我是對的,145號線是有問題的。其實我沒有意圖(mTemplateType=getIntent().getStringExtra("template_type"))這個代碼。

if(mTemplateType.equals("email")){ 
      message = subject + subjectMessageDelimiter + message; //|~| is the delimiter 
      messageTypeCode = Constants.EMAIL_CODE; 
     } else if(mTemplateType.equals("sms")){ 
      messageTypeCode = Constants.SMS_CODE; 
     }