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