当前位置: 首页 > 知识库问答 >
问题:

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

齐阎宝
2023-03-14

这显然是我在这里的第一篇文章...好吧,我的问题如下:@android:我有一个用户输入文本的文本编辑器,我通过getText()获取文本,一切正常,但当我按下后退按钮,再次返回到文本编辑器的相同活动并尝试再次获取文本时,它返回空字符串"",尽管文本编辑器视图中显示了不同的文本。会不会是文本编辑仍然与旧的关闭活动“相关或对应”?有什么想法吗?

@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 中,我将文本发送到发送,

@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;            
    }

现在,当我可以正常发送msg时,但当我按下“后退”按钮,然后再次启动相同的活动时,发送的第一条msg完全是旧的(在第一次按下“发送”按钮时)。再次按下发送按钮时,EditText中显示的文本将正确发送。有什么帮助吗?谢谢经过一些调试后,我注意到send中textToSend的值。再次创建活动后,Onclick()方法与AsynckTask的doInBackGround中的方法不同。这发生在第一次点击发送后,一切正常。

共有1个答案

戎俊
2023-03-14

它很奇怪,粘贴你的代码,

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

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

Intent direction = new Intent(Class.this, DirectionClass.class);   
startActivity(direction);  
 类似资料:
  • 这里发生的情况是,一旦按下后退按钮,活动就会重新加载,并再次按下后退按钮退出应用程序。我希望它是一次性的,即第一次 我尝试了很多方法,比如尝试onBackPressed方法,但都没有用。我想解决这个问题,当用户按下后退按钮时,他应该退出应用程序。同样的情况也发生在其他活动中,其中我有一个登录页面,一旦用户来到登录页面,如果他希望退出应用程序并按下后退按钮,那么在我的情况下,登录页面再次被重新加载,

  • 我有一个活动,当我的应用程序首次启动时开始(只有一次)。该活动允许用户选择主题。然后当他们按下完成键时,我完成了这项活动。这会将用户引导到主活动。但是当用户按下返回按钮时,它会返回到第一次启动的活动(我使用完成()关闭的活动)。但我想要的是,应用程序应该关闭时,用户按下返回按钮从主活动(总是)。我在两个类中都重写了onBackPress。 这两个类中的onBackPressed方法如下所示: 主活

  • 我正在使用android 2.1,希望在Mapsavity上添加一个后退按钮。我在这一页上尝试了什么[在操作栏上显示后退按钮,但应用程序崩溃。我已经按照另一个论坛的建议将extends FragmentActivity替换为AppCompatActivity,但应用程序仍然崩溃。我知道这与操作栏有关,因为如果我删除它,应用程序就会工作。操作栏似乎为空。我被卡住了,已经启动了应用程序数次。下面是错误

  • 我通过以下代码阻止返回登录活动: 当用户处于第二个活动上并且他按下主页按钮,应用程序进入后台,当他恢复它时,第二个活动出现 - 没关系。但是,当用户在第二个活动中按后退按钮时,应用程序进入后台,当他重新喜欢它时 - 登录活动再次创建并且它处于前期。 如何防止再次创建登录活动?或者,我不应该完成登录活动,而是应该检查用户是否已登录-如果是,我应该显示第二个活动? 清单:

  • 问题内容: 我最近在许多Android应用程序和游戏中都注意到了这种模式:单击“后退”按钮以“退出”该应用程序时,会出现类似“请再次单击BACK退出”的消息。 我想知道,正如我越来越经常看到的那样,这是你可以以某种方式在活动中访问的内置功能吗?我看过许多类的源代码,但似乎找不到任何东西。 当然,我可以考虑几种很容易实现相同功能的方法(最简单的方法可能是在活动中保留一个布尔值,以指示用户是否已经单击