如何在活动中显示对话框中的edittext输入

Joh*_*ohn 1 android dialog android-edittext

解决了抱歉问题!!!

只是忘了在对话框中指出编辑文本:

number1 = (EditText)dialogcalc.findViewById(R.id.number1);
number2 = (EditText)dialogcalc.findViewById(R.id.number2);
Run Code Online (Sandbox Code Playgroud)

我正在尝试制作一个与用户相乘的计算器.该数字可以放在对话框中的Edittext中.在按下对话框上的按钮计数后,该数字必须乘以并显示在激活对话框的活动中.当我点击计算按钮时出现错误,我该怎么办?

main.xml(对话框)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

<!-- number 1 -->
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="number:" />
    <EditText
        android:id="@+id/number1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:hint="0"
        android:inputType="number"
        android:layout_marginLeft="20dp" />
</LinearLayout>

<!-- number 2 -->
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="number:" />
    <EditText
        android:id="@+id/number2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:hint="0"
        android:inputType="number"
        android:layout_marginLeft="20dp" />
</LinearLayout>


<Button
    android:id="@+id/btncalculate"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Calculate"/>

<Button
    android:id="@+id/btnreset"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Reset" />

</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

java文件:

package com.tip.calc;

import android.app.Activity;
import android.app.Dialog;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;


public class OverviewpageActivity extends Activity  {
private TextView multiplydisplay;
private TextView multiply2display;
private Button btntocalculator;
private Button btnpopup;

private EditText number1;
private EditText number2;

private double number1calc = 0;
private double number2calc = 0;
private double multiply     = 0;
private double multiply2     = 0;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.overview);

    multiplydisplay = (TextView)findViewById(R.id.multiplydisplay);
    multiply2display    = (TextView)findViewById(R.id.multiplydisplay2);
    btntocalculator = (Button)findViewById(R.id.btntocalculator);
    btnpopup = (Button)findViewById(R.id.btnpopup);


    btntocalculator.setOnClickListener(new Button.OnClickListener() { 
        public void onClick (View v)    { 

            final Dialog dialogcalc = new Dialog(OverviewpageActivity.this);
            dialogcalc.setContentView(R.layout.main);
            dialogcalc.setTitle("calc");
            dialogcalc.setCancelable(true);

            Button buttoncalculate = (Button) dialogcalc.findViewById(R.id.btncalculate);
            buttoncalculate.setOnClickListener(new OnClickListener() {
                 public void onClick(View v) {

                        if(number1.getText().toString().trim().length() < 1 ){number1calc=0;}
                        else{number1calc=Double.parseDouble(number1.getText().toString());}

                        if(number2.getText().toString().trim().length() < 1 ){number2calc=0;}
                        else{number2calc=Double.parseDouble(number2.getText().toString());}

                        //calculate
                        multiply=(number1calc*number2calc)*0.222;
                        multiply2=(number1calc*number2calc)*0.888;

                        //display
                        multiplydisplay.setText(Double.toString(multiply));
                        multiply2display.setText(Double.toString(multiply2));

                    dialogcalc.dismiss();
                }
            });

            dialogcalc.show();

        }
    }); 

    btnpopup.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
             //set up dialog
             final Dialog dialog = new Dialog(OverviewpageActivity.this);
             dialog.setContentView(R.layout.custom_dialog);
             dialog.setTitle("This is my custom dialog box");
             dialog.setCancelable(true);

             TextView text = (TextView) dialog.findViewById(R.id.TextView01);
             text.setText(R.string.about);

             ImageView img = (ImageView) dialog.findViewById(R.id.ImageView01);
             img.setImageResource(R.drawable.carbon);

             Button button = (Button) dialog.findViewById(R.id.Button01);
             button.setOnClickListener(new OnClickListener() {
                 public void onClick(View v) {
                     dialog.dismiss();
                 }
             });  
             dialog.show();
        }
    });

}
}
Run Code Online (Sandbox Code Playgroud)

Sub*_*ian 12

很简单

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

alert.setTitle("Title");
alert.setMessage("Message");

// Set an EditText view to get user input 
final EditText input = new EditText(this);
alert.setView(input);

alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
  String value = input.getText().toString();
  // Do something with value!
  }
});

alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
  public void onClick(DialogInterface dialog, int whichButton) {
    // Canceled.
  }
});

alert.show();
Run Code Online (Sandbox Code Playgroud)