Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在Pause()上重置TextView值_Android_Android Edittext - Fatal编程技术网

Android 在Pause()上重置TextView值

Android 在Pause()上重置TextView值,android,android-edittext,Android,Android Edittext,我创建了一个由2个EditText(用户名、密码)和一个按钮表示的登录应用程序。 当我单击login时,它当然会检查信息,如果它出错,它会打印一个带有重试按钮的对话框。 当我回到登录活动时,旧的用户名和密码文本仍然存在,我想重置它。 我尝试在onPause()方法上执行此操作,因为当错误对话框弹出时,会生成onPause()方法,但我失败了 有什么想法吗? 谢谢 编辑:在你的建议之后,我决定重新排列我的代码,并声明EditText是应该的。 结果还是一样=\ public class MainA

我创建了一个由2个EditText(用户名、密码)和一个按钮表示的登录应用程序。 当我单击login时,它当然会检查信息,如果它出错,它会打印一个带有重试按钮的对话框。 当我回到登录活动时,旧的用户名和密码文本仍然存在,我想重置它。 我尝试在onPause()方法上执行此操作,因为当错误对话框弹出时,会生成onPause()方法,但我失败了

有什么想法吗? 谢谢

编辑:在你的建议之后,我决定重新排列我的代码,并声明EditText是应该的。 结果还是一样=\

public class MainActivity extends Activity 
{
    public final static String EXTRA_MESSAGE = "com.example.myfirstapp.MESSAGE";
    private EditText username,password;

@Override
protected void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    this.username = (EditText)findViewById(R.id.username);
    this.password = (EditText)findViewById(R.id.password);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) 
{
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.activity_main, menu);
    return true;
}
@Override
public void onPause()
{
    this.username.setText("");
    this.password.setText("");

    super.onPause();
}
public void showMsg(View view)
{
    String user = this.username.getText().toString();
    String pass = this.password.getText().toString();

    if(user.equals("a") && pass.equals("a"))
    {
        Intent i1 = new Intent(this,DisplayMessageActivity.class);
        i1.putExtra(EXTRA_MESSAGE, user);
        startActivity(i1);
    }
    else
    {   
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle("Error!");
        builder.setMessage(R.string.failure);
        builder.setPositiveButton("Try again", null);
        builder.show();
    }
}
}

我尝试在onPause()方法上执行此操作,因为当错误对话框弹出时,会生成onPause()方法,但我失败了

我不知道这意味着什么,但你应该能够做到:

@Override
protected void onPause() {
    editText.setText("");
    super.onPause();
}
如果这对您没有帮助,您需要发布您尝试过的内容和LogCat错误。否则我们就帮不上忙了


添加
当用户名和密码组合错误时,您实际上不会离开活动,因此永远不会调用
onPause()
。试试这个:

public void showMsg(View view)
{
    String user = this.username.getText().toString();
    String pass = this.password.getText().toString();
    this.username.setText("");
    this.password.setText("");

或者,如果您只想清除else块(创建AlertDialog的地方)中的用户名和密码。

单击按钮后,您可以设置一个空的编辑文本:

editText.setText("");
或者尝试在xml中设置提示属性:

android:hint="Enter Name"

onPause()我尝试过:protectedvoid onPause(){super.onPause();((EditText)findViewById(R.id.username)).setText(“”;((EditText)findViewById(R.id.password)).setText(“”;})执行相同的操作,但在onClickListener中为您的登录按钮设置。你不需要在onPause()中使用它,我会尝试并发布结果,但我不明白为什么它不起作用?我这样做的原因之一是为了练习活动生命周期(暂停、停止、恢复等)。下面是我尝试的:'code'protected void onPause(){super.onPause();((EditText)findViewById(R.id.username)).setText(“”;((EditText)findViewById(R.id.password)).setText(“”;}感谢您将其添加到问题的代码中。为什么这样不行?