如何在对话框中输入编辑文本的值

时间:2017-02-03 19:54:45

标签: java android android-edittext android-alertdialog

enter image description here我想通过使用edittext中输入值的值,以单独的对话框中的详细方式给出用户在EditText中输入的输出。任何帮助将不胜感激。

以下是代码:

EditText editText1,editText2,editText3;
Button btn,btn2;

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

    btn = (Button) findViewById(R.id.btn);
    btn2 = (Button) findViewById(R.id.btn2);

    editText1 = (EditText) findViewById(R.id.editText2);
    editText2 = (EditText) findViewById(R.id.editText3);
    editText3 = (EditText) findViewById(R.id.editText4);

    btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            calculate();
        }
    });

    btn2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(MainActivity.this);

            String s = " (Result) ";
            alertDialogBuilder.setTitle("Detailed Output is");
            alertDialogBuilder.setCancelable(false);
            alertDialogBuilder.setMessage("(The code should be like as follows)\n\n"+"sum of entered number is:"+s+"\n"+"multiply of entered number is:"+s+"\n"+"subtraction of entered number is:"+s)

                    .setNeutralButton("Ok", new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int id) {
                            dialog.cancel();
                        }
                    });
            AlertDialog alertDialog = alertDialogBuilder.create();
            alertDialog.show();

        }
    });
}
    public void calculate() {

        String a = editText1.getText().toString();
        String b = editText2.getText().toString();
        editText3.setText(String.valueOf(Integer.parseInt(a)+ Integer.parseInt(b))+"\n"+String.valueOf(Integer.parseInt(a)* Integer.parseInt(b))+"\n"+String.valueOf(Integer.parseInt(a)-Integer.parseInt(b)));
    }
}

3 个答案:

答案 0 :(得分:1)

您可以使用String.Format格式化输入参数的字符串。

alertDialogBuilder.setMessage(String.format("(The code should be like as follows)\n\n"+"sum of entered number is:%s\n multiply of entered number is:%s \n subtraction of entered number is:%s"),editText1.getText().toString(), editText2.getText().toString(), editText3.getText().toString())

答案 1 :(得分:0)

好的,试试这个:

首先,在MainActivity的onCreate()方法中声明你的两个EditText(那些你想要求和,减去并乘以值等)作为final:

final EditText editText1 = (EditText) findViewById(R.id.editText2);
final EditText editText2 = (EditText) findViewById(R.id.editText3);

其次,请为您的btn2.setOnClickListener

试用此代码
btn2.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(MainActivity.this);

        int myNum_one, myNum_two, myNum_three;

        try {

            myNum_one = Integer.parseInt(editText1.getText().toString());
            myNum_two = Integer.parseInt(editText2.getText().toString());

            String s = "Sum of entered number is: %d \n multiply of entered number is: %d \n subtraction of entered number is: %d";
            int sum = myNum_one + myNum_two;
            int multiply = myNum_one * myNum_two;
            int subtraction = myNum_one - myNum_two;
            alertDialogBuilder.setTitle("Detailed Output is");
            alertDialogBuilder.setCancelable(false);
            alertDialogBuilder.setMessage(String.format(s, sum, multiply, subtraction))
                  .setNeutralButton("Ok", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int id) {
                        dialog.cancel();
                    }
                });
            AlertDialog alertDialog = alertDialogBuilder.create();
            alertDialog.show();

        } catch(NumberFormatException nfe) {
            Log.d("TAG","Could not parse " + nfe);
        } 

    }
});

答案 2 :(得分:0)

首先不要在代码中编写msg,因为如果你想将你的应用程序翻译成不同的语言你没有选项,那么更好的做法是使用strings.xml文件存储你的字符串

好的方法是将你的msg添加到strings.xlm文件

<string name="myMsg">The code should be like as follows)\n\n sum of entered number is:%1$s \n multiply of entered number is:%2$s\n subtraction of entered number is:%3$s</string>

如果你想在代码中使用它:

String msg = String.format(getResources().getString(R.string.myMsg), editText1,editText2,editText3));

并添加到对话框:

alertDialogBuilder.setMessage(msg);