2012-06-18 20 views
5

Im tạo Triggers và hành động ứng dụng cho dự án năm cuối cùng của tôi,Kết quả cung cấp không thành công ResultInfo {who = null, request = 1, result = -1, data = Intent {(has extras)}} vào hoạt động; java.lang.NullPointerException

Tôi trả về một kết quả Hoạt động trẻ đến hoạt động trung gian và ther thêm một số dữ liệu để hoạt động đó và gửi nó một lần nữa để hoạt động chính,

tôi đã làm cho cả hai mô-đun phụ trigger và mô-đun phụ hành động, cả hai như cùng mã hóa ....

mô-đun kích hoạt được làm việc một cách hoàn hảo, nhưng khi áp dụng hành động mô-đun chạy là buộc dừng

và lỗi là

E/AndroidRuntime(5104): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=-1, data=Intent { (has extras) }} to activity {mani.droid.mechanize/mani.droid.mechanize.ActionListActivity}: java.lang.NullPointerException 

Child onActivityResult

public void onSave(View v) 
{ 
    if(txtNum.length() != 0) 
    { 
     String strTmp = null; 
     Intent resultInt = new Intent(); 
     strTmp = txtNum.getText().toString(); 
     resultInt.putExtra("Num", strTmp); 
     resultInt.putExtra("SubName", strTmp); 
     setResult(Activity.RESULT_OK, resultInt); 
     finish(); 
    } 
    else 
     Toast.makeText(getApplicationContext(), "Please enter number or choose from contact", Toast.LENGTH_SHORT).show(); 
} 

Intermediate onActivityResult

//getting result from other activity and sending to action list activity 
@Override 
public void onActivityResult(int reqCode, int resultCode, Intent data) { 
    super.onActivityResult(reqCode, resultCode, data); 
    if(resultCode == Activity.RESULT_OK) 
    { 
     switch(reqCode) 
     { 
      case 1: 
        data.putExtra("ActionName", txtAction); 
        setResult(Activity.RESULT_OK, data); 
        finish(); 
        break; 
     } 
    } 
} 

chính onActivityResult

//Getting Trigger parameters and adding to list 
@Override 
public void onActivityResult(int reqCode, int resultCode, Intent data) { 
    super.onActivityResult(reqCode, resultCode, data); 
    if(resultCode == Activity.RESULT_OK) 
    { 
     switch(reqCode) 
     { 
      case 1: 
       if (data.equals(null)) 
       { 
        Toast.makeText(context, "Intent is Null", Toast.LENGTH_SHORT).show(); 
       } 
       else 
       { 
        //String actName = data.getStringExtra("ActionName"); 
        String subName = data.getStringExtra("SubName"); 
        Toast.makeText(context, subName, Toast.LENGTH_SHORT).show(); 
       } 
       break; 
     } 
    } 
} 

Trả lời

7

Điều đó có nghĩa là máy thu Intent đã ném một ngoại lệ trong số onActivityResult(). Và tôi có thể nhìn thấy NullPointerException ngay tại đây: data.equals(null) chắc chắn là sai vì nó ném một ngoại lệ khi datanull. Ý bạn là data == null.

+0

tôi một số những gì được quản lý cho vấn đề này và giải quyết, nhưng tôi không biết làm thế nào nó được giải quyết, và tôi cũng đã cố gắng dữ liệu == null trước, cùng một lỗi, thats tại sao tôi đã thử data.equals (null) – Mani

+0

Sau đó, 'NullPointerException' của bạn là ở nơi khác. Nó hướng bạn đến một số dòng, vì vậy hãy làm theo. Bạn đã không đăng bài theo dõi ngăn xếp của bạn - luôn luôn là một ý tưởng tốt. 'data.equals (null)' không bao giờ đúng trong Java. Nó luôn luôn là 'sai' hoặc ném một ngoại lệ. –

+0

ya bây giờ tôi đã hiểu, cảm ơn sự giúp đỡ của bạn .. – Mani

0

chỉ cần kiểm tra null != data, như dữ liệu null bằng

Các vấn đề liên quan