在按下后退按钮后再次创建活动时,EditText返回相同的值

时间:2014-01-26 14:47:29

标签: java android

这显然是我的第一篇文章......好吧我的问题如下: @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中的值不同。这种情况发生在第一次点击发送之后,一切正常。

1 个答案:

答案 0 :(得分:0)

很奇怪,粘贴你的代码,

尝试在按钮的onClick()方法中设置edittext.setText(“test”)。并在你回来时检查返回edittext.getText()的内容。

要更改活动,请使用此语法吗?

Intent direction = new Intent(Class.this, DirectionClass.class);   
startActivity(direction);