簡體   English   中英

Android自定義對話框

[英]Android Custom dialog box

我有一個按鈕,當我單擊該按鈕時,將打開一個對話框。 在該對話框中,單擊一個EditText和ok按鈕,然后在顯示的文本中單擊ok按鈕時,輸入一些文本。
我不知道該怎么做,對我有幫助

使用以下

 import android.app.Activity;
 import android.app.AlertDialog;
  import android.content.Context;
      import android.content.DialogInterface;
   import android.os.Bundle;
    import android.view.LayoutInflater;
 import android.view.View;
    import android.view.View.OnClickListener;
   import android.widget.Button;
    import android.widget.EditText;

 public class MainActivity extends Activity {

final Context context = this;
private Button button;
private EditText result;

public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    // components from main.xml
    button = (Button) findViewById(R.id.buttonPrompt);
    result = (EditText) findViewById(R.id.editTextResult);

    // add button listener
    button.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {

            // get prompts.xml view
            LayoutInflater li = LayoutInflater.from(context);
            View view= li.inflate(R.layout.prompts, null);

            AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
                    context);

            // set prompts.xml to alertdialog builder
            alertDialogBuilder.setView(view);

            final EditText userInput = (EditText) view
                    .findViewById(R.id.editTextDialogUserInput);

            // set dialog message
            alertDialogBuilder
                .setCancelable(false)
                .setPositiveButton("OK",
                  new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog,int id) {
                    // get user input and set it to result
                    // edit text
                    result.setText(userInput.getText());
                    }
                  })
                .setNegativeButton("Cancel",
                  new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog,int id) {
                    dialog.cancel();
                    }
                  });

            // create alert dialog
            AlertDialog alertDialog = alertDialogBuilder.create();

            // show it
            alertDialog.show();

        }
    });
}

}

希望這個能對您有所幫助

 AlertDialog.Builder alert = new AlertDialog.Builder(con);
                final EditText input = new EditText(con);
                String s="your text";

                alert.setView(input);
                alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int whichButton) {
                        String value = input.getText().toString().trim();
                        Toast.makeText(con, value, Toast.LENGTH_SHORT).show();
                    }
                });
                alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int whichButton) {
                        dialog.cancel();
                    }
                });
                alert.show();

我將帶您盡可能少地執行代碼,因為我認為這將幫助您學習更多(比此處的其他答案):

  • 在啟動對話框所需的按鈕上設置一個OnClickListener
  • 使用XML為對話框創建自定義視圖,並將其命名為custom_box.xml
  • 之后,在您的OnClick方法中,使用以下命令將該自定義xml設置為對話框:
 final Dialog dialog = new Dialog(context); dialog.setContentView(R.layout.custom_box); 
  • 像在Activity中一樣,將Java中的Button和EditText連接起來,但是現在使用dialog.findViewById(R.id ...)代替Activity中的this.findViewById(...)
  • 在對話框內的按鈕上設置一個OnClickListener,然后在其中調用dismiss並更改文本操作。

如果需要,這里也提供了一個不錯的教程的鏈接,這是Android文檔

public class MainActivity extends Activity {

final Context context = this;
private Button button;
private TextView result;
private TextView result2;

public void onCreate(Bundle savedInstanceState) {

  super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);

 // components from main.xml
 button = (Button) findViewById(R.id.button1);
 result = (TextView) findViewById(R.id.textView1);
 result2 = (TextView) findViewById(R.id.textView2);

 // add button listener
 button.setOnClickListener(new OnClickListener() {

   @Override
   public void onClick(View arg0) {

       // get prompts.xml view
       LayoutInflater li = LayoutInflater.from(context);
       View view= li.inflate(R.layout.dailog, null);

       AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
               context);

       // set prompts.xml to alertdialog builder
       alertDialogBuilder.setView(view);

       final EditText userInput = (EditText) view
               .findViewById(R.id.edit1);
       final EditText userInput2 = (EditText) view
               .findViewById(R.id.edit2);

       // set dialog message
       alertDialogBuilder
           .setCancelable(false)
           .setPositiveButton("OK",
             new DialogInterface.OnClickListener() {
               public void onClick(DialogInterface dialog,int id) {
               // get user input and set it to result
               // edit text
               result.setText(userInput.getText());
               result2.setText(userInput2.getText());
               }
             }) 
           .setNegativeButton("Cancel",
             new DialogInterface.OnClickListener() {
               public void onClick(DialogInterface dialog,int id) {
               dialog.cancel();
               }
             });

       // create alert dialog
       AlertDialog alertDialog = alertDialogBuilder.create();

       // show it
       alertDialog.show();

   }
 });
}

}

這是我的確切答案

是解釋如何在android中創建自定義對話框的鏈接,這將幫助您

Call ForgetPswPopUp() method name


 public void ForgetPswPopUp() {
                AlertDialog.Builder alertDialog = new AlertDialog.Builder(
                        HomeActivity.this);
                alertDialog.setTitle("set Title");
                final EditText input = new EditText(HomeActivity.this);
                input.setHint("Textbox hint");
                LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
                        LinearLayout.LayoutParams.MATCH_PARENT, position);
                input.setLayoutParams(lp);
                alertDialog.setView(input);
                alertDialog.setNegativeButton("Button name",
                        new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog, int which) {
                                dialog.cancel();
                            }
                        });
                alertDialog.show();
            }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM