我在更新textview时遇到问题。 我正在制作一个c2dm应用程序。我发送的消息正由设备接收(因为我已将消息显示在通知栏中。我也有许多日志表明已收到消息)。但是,一旦我点击通知区域内的消息打开我的视图,它只显示我的1条消息。例如,我发送一条消息,然后我想发送另一条消息,只显示第一条消息。
我发现我可能需要一个onNewIntent
但是我不确定我是否以正确的方式解决了这个问题。
public class MessageReceivedActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.activity_result);
Bundle extras = getIntent().getExtras();
if (extras != null) {
String message = extras.getString("payload");
if (message != null && message.length() > 0) {
TextView view = (TextView) findViewById(R.id.result);
view.setText(message);
}
}
super.onCreate(savedInstanceState);
}
@Override
protected void onNewIntent(Intent intent) {
setContentView(R.layout.activity_result);
Bundle extras = getIntent().getExtras();
if (extras != null) {
String message = extras.getString("payload");
if (message != null && message.length() > 0) {
TextView view = (TextView) findViewById(R.id.result);
setIntent(intent);
view.setText(message);
}
}
// setIntent(intent);
}
}
我的布局是activity_result,其中只包含1个textview 我的文本视图称为结果 和有效负载是我从服务器发送的消息
任何帮助将不胜感激
答案 0 :(得分:0)
Update Textview from function Android how to change text in Android TextView
希望他们能提供帮助。 是否有理由不在这些情况下使用edittext?我是新手。
答案 1 :(得分:0)
我认为你需要留意你的通知ID。您发送消息,但所有消息都具有相同的通知ID。你应该以某种方式增加通知ID。
答案 2 :(得分:0)
和setContentView(R.layout.activity_result)
答案 3 :(得分:0)
:
Intent mIntent = new Intent();
mIntent.setClass(mContext, MessageReceivedActivity.class);
mIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
mIntent.putExtra("payload", "fdfsfnj");
mContext.startActivity(mIntent);
活动MessageReceiver活动中的:
@Override
protected void onNewIntent(Intent intent)
{
String message = intent.getData();
//Or you can use
String message = getIntent().getStringExtra("payload", "");
super.onNewIntent(intent);
}
答案 4 :(得分:0)
所有遇到此问题的人。 我看了另一个堆栈溢出问题,这是答案。 在createNotification里面的消息接收器中添加这个
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0,intent,
PendingIntent.FLAG_CANCEL_CURRENT);
不要忘记取消当前视图的结尾标志