【发布时间】:2011-11-13 01:45:12
【问题描述】:
我的 TextMessage 活动被传递了一个姓名和电话号码,然后继续允许用户键入文本消息,然后继续发送消息。
我的活动完成了它应该做的事情,但是,在发送消息后它再次调用我的 TextMessage 活动,但它不保留姓名和电话号码。
有什么办法可以做到吗?我知道我不能将“putExtra”用于pendingIntent,所以我不知道该怎么做。
此外,在这种情况下,我的取消按钮会崩溃,因为我从之前的 Intent 收到的姓名和电话号码现在为空。
我的代码:
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();
}
});
}
}
【问题讨论】:
标签: android