2015-09-04 4 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

Вы находитесь положив id с ключом temp_id в первую активность и попытавшись прочитать его с called, что почему вы не получаете его в следующем действии. Затем я деятельность изменение sms_key_id = getIntent().getStringExtra("called"); к sms_key_id = getIntent().getStringExtra("temp_id");

+0

thanq sir !! но снова я получаю ошибку времени выполнения, я добавляю ошибки logcat –

+0

Не отправляйте logcat в качестве ответа .. вместо этого измените свой вопрос –

+0

show line 145 of EmailTempEdit.java –

0

Заменить

if (sms_key_id.equalsIgnoreCase("add")) 

с

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

нет улучшения с той же ошибкой @ rj –

+0

введите код действия, в котором вы получаете ошибку в ... –

0

Первый - Вы отправляете намерение с одним ключом temp_id и извлечение значения из него с помощью другого ключ

Secon 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; 
     } 
Смежные вопросы