这显然是我的第一篇文章......好吧我的问题如下: @android:我有一个用户在文本中输入的TextEdit,我通过getText()获取文本并且一切正常,但是当我按下后退按钮时,再次回到TextEdit的相同活动并尝试再次获取文本,它返回并清空字符串“”,尽管TextEdit视图中显示了不同的文本。 是不是TextEdit仍然与旧的封闭活动“相关或对应”? 有任何想法吗 ?
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.messaging_screen2);
editText = (EditText) findViewById(R.id.msgText);
Button send = (Button)findViewById(R.id.Go);
send.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
textToSend=editText.getText().toString();
}
});
}
然后在AsynckTask中发送textToSend,
@Override
protected String doInBackground(Void... arg0) {
while(!done)
{
if(isCancelled())
{
done=true;
break;
}
if(text.contains(Protocols.RESPONSE_OK))
{
System.out.println("getting message from edit text: "+textToSend);
publishProgress(textToSend);
}
}
return null;
}
现在我可以正常发送消息,但是当我按下后退按钮然后再次启动相同的活动时,发送的FIRST消息正好是旧消息(第一次按下发送按钮)。当我再次按下发送按钮时,EditText中显示的文本被正确发送。 所以任何帮助? 谢谢。 经过一些调试后,我注意到send.Onclick()方法中textToSend的值与再次创建活动后AsynckTask的doInBackGround中的值不同。这种情况发生在第一次点击发送之后,一切正常。
答案 0 :(得分:0)
很奇怪,粘贴你的代码,
尝试在按钮的onClick()方法中设置edittext.setText(“test”)。并在你回来时检查返回edittext.getText()的内容。
要更改活动,请使用此语法吗?
Intent direction = new Intent(Class.this, DirectionClass.class);
startActivity(direction);