2011-11-13 3 views
0

My TextMessage 활동에 이름과 전화 번호가 전달 된 다음 사용자가 문자 메시지를 입력하고 메시지를 보내도록 허용합니다.PendingIntent를 사용한 후 내 정보를 어떻게 복원합니까?

내 활동은 메시지를 보낸 후에 다시 내 TextMessage 활동을 호출하지만 이름과 전화 번호는 유지하지 않습니다.

내가 할 수있는 방법이 있습니까? pendingIntent에 "putExtra"를 사용할 수 없다는 것을 알기 때문에 이것을 수행하는 방법에 대한 손실이 있습니다.

또한 이전 인 텐트에서받은 이름과 전화 번호가 null이기 때문에 내 취소 버튼이 충돌합니다.

내 코드 대신 보류중인 의도의 생성자에서이를 사용

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

불행히도 저에게는 효과가 없습니다. PendingIntent에 대한 의도에 putExtra를 사용 했더라도 이름과 전화 번호에 대해 null 값이있는 화면으로 계속 되돌아갑니다. –

+0

이 게시물에 시도해보십시오. http://stackoverflow.com/questions/4340431/how-can-i-correctly-pass-unique-extras-to-a-pending-intent – caguilar187

+0

나는 그것이 나에게 의미가 있었으면 좋겠다. 나는 그 것들을 구현하는 방법을 모른다. –

관련 문제