2011-11-13 22 views
0

我的TextMessage活動被傳遞一個名稱和電話號碼,然後繼續允許用戶鍵入文本消息併發送消息。如何在使用PendingIntent後恢復我的信息?

我的活動完成它應該做的事情,但是,在發送消息後,它再次調用我的TextMessage活動,但它不保留姓名和電話號碼。

有沒有一種方法可以做到這一點?我知道我不能使用「putExtra」作爲pendingIntent,所以我不知道如何做到這一點。

此外,我的取消按鈕在這種情況下崩潰,因爲我從以前的意向收到的姓名和電話號碼現在爲空。

我的代碼:

public class TextMessage extends Activity { 

    private Button cancel; 
    private EditText message; 
    private TextView nameInfo; 
    private Button send; 

    private String searchName; 
    private String searchPhone; 

    private SmsManager smsManager; 

    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.message); 

     cancel = (Button) findViewById(R.id.cancelmessage); 
     send = (Button) findViewById(R.id.sendmessage); 
     message = (EditText) findViewById(R.id.messagebodytext); 
     nameInfo = (TextView) findViewById(R.id.messageuser); 

     searchName = getIntent().getStringExtra("name"); 
     searchPhone = getIntent().getStringExtra("phonenumber");  

     nameInfo.setText(searchName + ": " + searchPhone); 

     smsManager = SmsManager.getDefault(); 
     //final PendingIntent sentIntent = PendingIntent.getActivity(this, 0, new Intent(this, TextMessage.class), 0); 
     Intent intent = new Intent(this, TextMessage.class); 
     intent.putExtra("name", searchName); 
     intent.putExtra("phonenumber", searchPhone); 
     final PendingIntent sentIntent = PendingIntent.getActivity(this, 0, intent, 0); 

     send.setOnClickListener(new Button.OnClickListener() { 
      public void onClick(View v) { 
       String messageBody = message.getText().toString(); 
       if (messageBody.length() > 0) { 
        smsManager.sendTextMessage(searchPhone, null, messageBody, sentIntent, null); 
        finish(); 
       } 
      } 
     }); 

     cancel.setOnClickListener(new Button.OnClickListener() { 
      public void onClick(View v) { 
       Intent intent = new Intent(TextMessage.this, SMS.class); 
       intent.putExtra("name", searchName); 
       startActivity(intent); 
       finish(); 
      } 
     }); 
    } 
} 

回答

1

而是在未決意圖的構造利用這一點。你應該在外面創建它,並將你的附加內容添加到該意圖。我認爲這種情況不是很重要,但如果您有另一個待處理意圖的信息相同,則需要更新當前來覆蓋額外信息。

intent = new Intent(this, TextMessage.class); 
intent.putExtra("",""); 
final PendingIntent sentIntent = PendingIntent.getActivity(this, 0, intent, 0); 
+0

不幸的是,這不適合我。即使我使用putExtra進入PendingIntent的意圖,它仍將我返回到名稱和電話號碼爲空值的屏幕。 –

+0

給這個帖子試一試。 http://stackoverflow.com/questions/4340431/how-can-i-correctly-pass-unique-extras-to-a-pending-intent – caguilar187

+0

我希望這對我有意義,我不知道如何實現這些東西 –