我的应用以用户登录开始。
当用户按下“Enter”按钮时(在网格视图上标记自己从sqlite获取数据之后)。该应用程序由inflater打开alertdialog。
if (gridView.isClickable()){
Toast.makeText(getApplicationContext(), "Waiter selected", Toast.LENGTH_LONG).show();
LayoutInflater inflater = getLayoutInflater();
View dialogLayout = inflater.inflate(R.layout.password_dialog, null);
AlertDialog.Builder passwordDialog = new AlertDialog.Builder(MainActivity.this);
XML文件(布局)只有一个editext,在这个用户需要填写的editext上
他自己的密码:
passwordDialog.setTitle(getString(R.string.get_id_uniq));
passwordDialog.setMessage(getString(R.string.enter_id));
passwordDialog.setView(dialogLayout);
passwordDialog.setPositiveButton(getString(R.string.next),
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
password = input.getText().toString();
现在问题是,当用户点击editext键盘打开时 然后他输入密码,当他完成并按下“开始”按钮 键盘,键盘关闭,但不够,因为现在他需要再次按下alertdialog按钮,然后应用程序将检查密码是否正确,并将他移动到下一个活动。
我试着用 -
android:imeOptions="actionNext"
还有“完成”,“开始”和“发送”,他们都没有帮助。
如何防止双击2个不同的按钮并从键盘按钮发送数据并跳过需要按对话框按钮?
答案 0 :(得分:1)
你可以这样做:
看起来应该是这样的:
AlertDialog dialog = new AlertDialog.Builder(this).create();//note dialog's type
dialog.setTitle("Let's check it");
EditText input = new EditText(this);
dialog.setView(input);//assume this is your input
input.setOnEditorActionListener(new TextView.OnEditorActionListener() {
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if(actionId == EditorInfo.IME_ACTION_DONE){
//What to do when user clicked Done button
Log.i("user's password:", v.getText().toString());//v.getText().toString(); is what's user has entered
dialog.dismiss();//close Alert Dialog
return true;
}
return false;
}
});