如何在Android的AlertDialog中插入EditText数字

9

我有一个问题。我已经创建了一个小的Android应用程序。

我展示了一个带有EditText的AlertDialog.Builder,因此用户必须单击EdiText,选择数字123,然后插入一个整数。

我想显示一个只有数字的键盘。你能帮我吗?有可能自动聚焦创建一个AlertDialog吗?

我已经编写了这段代码。你能帮我吗?

AlertDialog.Builder alert = new AlertDialog.Builder(this);
                alert.setTitle("Inserisci quantità");
                alert.setMessage("Inserisci una quantità per l'articolo: "+articolo.getNomeArticolo());
                final EditText inputText = new EditText(this);
                alert.setView(inputText);
                alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int whichButton) {
                                String value = inputText.getText().toString();
                                try{
                                        int quantita = Integer.parseInt(value);
                                        ArticoliOrdine articoloOrdine = new ArticoliOrdine();
                                        articoloOrdine.setIdArticolo(articolo.getCodArticolo());
                                        articoloOrdine.setNomeArticolo(articolo.getNomeArticolo());
                                        articoloOrdine.setQuantia(quantita);
                                        listaArticoli.add(articoloOrdine);

                                        adapter.notifyDataSetChanged();
                                }catch(Exception e){
                                        AlertDialog.Builder alertErrore = new AlertDialog.Builder(getApplicationContext());
                                        alertErrore.setTitle("Errore");
                                        alertErrore.setMessage("Hai inserito una quantità non valida.");
                                        alertErrore.show();

                                }

                        }
                });


                // Showing Alert Message
                alert.show();

inputText.setInputType(InputType.TYPE_CLASS_NUMBER) - Raghunandan
3个回答

21

这段代码就是你需要的。只需将其插入到需要启动警告对话框的任何位置即可。 我还没有弄清楚如何自动启动键盘,但这应该不难。

AlertDialog.Builder alert = new AlertDialog.Builder(this);
                alert.setTitle(multiLangTranslation(R.string.manualshippermessage));
                final EditText input = new EditText(this);
                input.setInputType(InputType.TYPE_CLASS_NUMBER);
                input.setRawInputType(Configuration.KEYBOARD_12KEY);
                alert.setView(input);  
                alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int whichButton) {
                  //Put actions for OK button here
                  }
                });
                alert.setNegativeButton(multiLangTranslation(R.string.cancel), new DialogInterface.OnClickListener() {
                  public void onClick(DialogInterface dialog, int whichButton) {
                      //Put actions for CANCEL button here, or leave in blank
                  }
                });
                alert.show();

input.setInputType(InputType.TYPE_CLASS_NUMBER); 已完成,谢谢。 - david72
嘿,兄弟!你能给我 multiLangTranslation(@StringRes int id) 的代码吗? - vishal
@vishal,这是你需要的代码:return context.getString(android.R.string.cancel)。 - Josh

1

You need to add this line:

inputText.setRawInputType(Configuration.KEYBOARD_12KEY);

谢谢大家,现在找到了。但如果我想要自动显示键盘怎么办?现在当我显示弹窗时,我必须点击输入文本才会打开键盘。我已经尝试了以下代码但没有成功:inputText.setFocusable(true); - bircastri

-1
enter code here

AlertDialog.Builder alert = new AlertDialog.Builder(this);

警告对话框.构建器 alert = 新的 警告对话框.构建器(this);

  alert.setTitle(multiLangTranslation(R.string.manualshippermessage));

            final EditText input = new EditText(this);
            input.setInputType(InputType.TYPE_CLASS_NUMBER);
            input.setRawInputType(Configuration.KEYBOARD_12KEY);                
            alert.setPositiveButton("Ok", new 
            DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int whichButton) {
              //Put actions for OK button here
              }
            });
            alert.setNegativeButton(multiLangTranslation(R.string.cancel), 
            new DialogInterface.OnClickListener() {
              public void onClick(DialogInterface dialog, int whichButton) 
              {
              


              }
            });
            alert.show();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接