2012-04-07 28 views
0

私はあるアクティビティから別のアクティビティに値を送信したいのですが、NULLポインタがあります 例外は私の問題を解決してください。これらの値に基づいた活動第二の活動検索連絡先 いいえ、返信SMSを送ってください。あるアクティビティから別のアクティビティに値を渡す

public void onReceive(Context context, Intent intent) 
    { 
     // Get SMS map from Intent 
     Bundle bundle = null; 
     Bundle extras = intent.getExtras(); 

     String messages = ""; 
     String address = null,body=null; 

     if (extras != null) 
     { 
      // Get received SMS array 
      Object[] smsExtra = (Object[]) extras.get("pdus"); 

      // Get ContentResolver object for pushing encrypted SMS to incoming folder 
      //ContentResolver contentResolver = context.getContentResolver(); 

      for (int i = 0; i < smsExtra.length; ++i) 
      { 
       SmsMessage sms = SmsMessage.createFromPdu((byte[])smsExtra[i]); 

       body = sms.getMessageBody().toString(); 
       address = sms.getOriginatingAddress(); 

       messages += "SMS from " + address + " :\n";      
       messages += body + "\n"; 

       // Here you can add any your code to work with incoming SMS 
       // I added encrypting of all received SMS 


      } 

      // Display SMS message 
      Toast.makeText(context, messages, Toast.LENGTH_SHORT).show(); 
      Intent i=new Intent(context,AlertActivity.class); 

      bundle.putString("from",address); 
      bundle.putString("msg",body); 
      i.putExtras(bundle); 

      i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
      context.startActivity(i); 

     } 

} 

Activity2:

Intent i=getIntent(); 
    Bundle bundle=i.getExtras(); 
    String fromAdd=bundle.getString("from"); 
    String msgBody=bundle.getString("body"); 
+0

は[**このブログを参照してください。使用できる値を抽出することができます。これはあなたを助けます**](http://startandroiddevelopment.blogspot.in/2013/11/how-to-pass-boolean-int-string-integer.html) –

答えて

1

変更この

String msgBody=bundle.getString("body"); 

String msgBody=bundle.getString("msg"); 
1

にこれを試してみてください。

@Override 
public void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.main);  
Bundle bundle = this.getIntent().getExtras(); 
if (bundle != null) 
{  
String fromAdd = bundle.getString("from"); 
String msgBody = bundle.getString("body"); 
}   
} 
1

Android Bundleではキー値ペアを配置し、同じキーを渡し、データを入れているバンドルからデータを取得することが必須です。あなたが意図に2つの文字列を入れているあなたのコードをチェックし、である: 「から」、および「MSG」 、あなたはキーによって意図から値を取得している:「から」 と「身体」

ので、どちらかそれを変更開始アクティビティまたはアクティビティ2.キー値が一致するようにします。

0

これを試してみてください.....

Activity1.java

Intent intent = new Intent(getApplication(),Activity2.class); 
intent.putExtra("from",from); 
intent.putExtra("Body",Body); 
StartActivity(intent); 

Activity2.java

Intent intent = getintent(); 
Bundle bundle=intent.getExtras(); 
String Body=bundle.getString("Body"); 
String From=bundle.getString("From"); 
setResult("RESULT_OK",intent); 
0

...このようにしてみてください

バンドルBU = getIntent( ).getExtras();

String title = bu.get( "from")。toString();

String msg = bu.get( "body")。toString();

0

これを試して、Activity1からActivity2に値を渡してください。

Intent myIntent = new Intent(Activity1.this, Activity2.class); 
      myIntent.putExtra("UserId",UserId); 
      myIntent.putExtra("UserName",UserName); 
      myIntent.putExtra("CompanyID",CompanyID); 
      myIntent.putExtra("CompanyName",CompanyName); 
      myIntent.putExtra("ProjectId",ProjectId); 
      startActivity(myIntent); 

また、あなたが

Intent intent = getIntent(); 
    UserId=intent.getStringExtra("UserId"); 
    UserName=intent.getStringExtra("UserName"); 
    CompanyID=intent.getStringExtra("CompanyID"); 
    CompanyName=intent.getStringExtra("CompanyName"); 
関連する問題