当前位置: 首页 > 知识库问答 >
问题:

如何在对话框中创建编辑文本框

范玄裳
2023-03-14

我试图在对话框中创建一个编辑文本框,用于输入密码。当我在做的时候,我不能做。我是这方面的初学者。请帮我做这件事。

public class MainActivity extends Activity {

Button create, show, setting;
//String pass="admin";String password;

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

    create = (Button)findViewById(R.id.amcreate);
    setting = (Button)findViewById(R.id.amsetting);
    show = (Button)findViewById(R.id.amshow);
    //input = (EditText)findViewById(R.id.this);

    setting.setVisibility(View.INVISIBLE);

    create.setOnClickListener(new View.OnClickListener() {
        public void onClick(View view) {
            Intent myIntent1 = new Intent(view.getContext(), Create.class);
            startActivityForResult(myIntent1, 0);
        }

    });

    show.setOnClickListener(new View.OnClickListener() {
        //@SuppressWarnings("deprecation")
        public void onClick(final View view) {

            // Creating alert Dialog with one Button
            AlertDialog.Builder alertDialog = new AlertDialog.Builder(MainActivity.this);

            //AlertDialog alertDialog = new AlertDialog.Builder(MainActivity.this).create();

            // Setting Dialog Title
            alertDialog.setTitle("PASSWORD");

            // Setting Dialog Message
            alertDialog.setMessage("Enter Password");
            **final EditText input = new EditText(this);**
            //alertDialog.setView(input);

            // Setting Icon to Dialog
            alertDialog.setIcon(R.drawable.key);

            // Setting Positive "Yes" Button
            alertDialog.setPositiveButton("YES",
                    new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog,int which) {
                            // Write your code here to execute after dialog
                            Toast.makeText(getApplicationContext(),"Password Matched", Toast.LENGTH_SHORT).show();
                            Intent myIntent1 = new Intent(view.getContext(), Show.class);
                            startActivityForResult(myIntent1, 0);
                        }
                    });
            // Setting Negative "NO" Button
            alertDialog.setNegativeButton("NO",
                    new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int which) {
                            // Write your code here to execute after dialog
                            dialog.cancel();
                        }
                    });

            // closed

            // Showing Alert Message
            alertDialog.show();
        }

    }); 

形象

我想得到作为

 AlertDialog.Builder alertDialog = new AlertDialog.Builder(MainActivity.this);
 alertDialog.setTitle("PASSWORD");
 alertDialog.setMessage("Enter Password");

 final EditText input = new EditText(MainActivity.this);
 LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
     LinearLayout.LayoutParams.MATCH_PARENT,
     LinearLayout.LayoutParams.MATCH_PARENT);
 input.setLayoutParams(lp);
 alertDialog.setView(input);
 alertDialog.setIcon(R.drawable.key);

 alertDialog.setPositiveButton("YES",
     new DialogInterface.OnClickListener() {
         public void onClick(DialogInterface dialog, int which) {
             password = input.getText().toString();
             if (password.compareTo("") == 0) {
                 if (pass.equals(password)) {
                     Toast.makeText(getApplicationContext(),
                         "Password Matched", Toast.LENGTH_SHORT).show();
                     Intent myIntent1 = new Intent(view.getContext(),
                         Show.class);
                     startActivityForResult(myIntent1, 0);
                 } else {
                     Toast.makeText(getApplicationContext(),
                         "Wrong Password!", Toast.LENGTH_SHORT).show();
                 }
             }
         }
     });

 alertDialog.setNegativeButton("NO",
     new DialogInterface.OnClickListener() {
         public void onClick(DialogInterface dialog, int which) {
             dialog.cancel();
         }
     });

 alertDialog.show();
 }

 });

共有3个答案

陶法
2023-03-14

最简单的是。

>

  • 为对话框创建xml布局文件。添加任何你想要的视图,如编辑文本,列表视图,微调等。

    将此视图充气并将其设置为AlertDialog

    让我们先从布局文件开始。

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center_horizontal"
        android:orientation="vertical">
    
    
        <EditText
            android:id="@+id/etComments"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="top"
            android:hint="Enter comments(Optional)"
            android:inputType="textMultiLine"
            android:lines="8"
            android:maxLines="3"
            android:minLines="6"
            android:scrollbars="vertical" />
    
    </LinearLayout>
    
    final View view = layoutInflater.inflate(R.layout.xml_file_created_above, null);
    AlertDialog alertDialog = new AlertDialog.Builder(ct).create();
    alertDialog.setTitle("Your Title Here");
    alertDialog.setIcon("Icon id here");
    alertDialog.setCancelable(false);
    Constant.alertDialog.setMessage("Your Message Here");
    
    
    final EditText etComments = (EditText) view.findViewById(R.id.etComments);
    
    alertDialog.setButton(AlertDialog.BUTTON_POSITIVE, "OK", new OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
    
        }
    });
    
    
    alertDialog.setButton(AlertDialog.BUTTON_NEGATIVE, "Cancel", new OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            alertDialog.dismiss()
        }
    });
    
    
    alertDialog.setView(view);
    alertDialog.show();
    

  • 笪德华
    2023-03-14

    使用活动上下文

    替换这个

      final EditText input = new EditText(this);
    

      final EditText input = new EditText(MainActivity.this);  
      LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
                            LinearLayout.LayoutParams.MATCH_PARENT,
                            LinearLayout.LayoutParams.MATCH_PARENT);
      input.setLayoutParams(lp);
      alertDialog.setView(input); // uncomment this line
    
    勾喜
    2023-03-14

    我知道现在回答这个问题已经太晚了,但对于正在搜索类似内容的其他人来说,这里有一个带有edittext的alertbox的简单代码

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

    或者

    new AlertDialog.Builder(mContext, R.style.MyCustomDialogTheme);
    

    如果要更改对话框的主题。

    final EditText edittext = new EditText(ActivityContext);
    alert.setMessage("Enter Your Message");
    alert.setTitle("Enter Your Title");
    
    alert.setView(edittext);
    
    alert.setPositiveButton("Yes Option", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int whichButton) {
            //What ever you want to do with the value
            Editable YouEditTextValue = edittext.getText();
            //OR
            String YouEditTextValue = edittext.getText().toString();
        }
    });
    
    alert.setNegativeButton("No Option", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int whichButton) {
            // what ever you want to do with No option.
        }
    });
    
    alert.show();
    
     类似资料:
    • 我有一个扩展片段的片段,我想在单击编辑文本时打开日期选择器对话框。我尝试了几种方法,但没有预期的结果。谁能帮帮我吗?

    • 问题内容: 我需要在JavaFX中创建一个对话框。我知道我可以通过修改模式,所有者和可调整大小的属性来使舞台表现得像对话框。 但是,如何从舞台窗口中隐藏“最小化”和“最大化”按钮?典型的对话框只有“关闭”按钮。 问题答案: 在Windows 7下,在显示窗口之前初始化为StageStyle.UTILITY将创建一个仅具有关闭按钮而没有最小化或最大化按钮的窗口: 如果您需要一整套基本的JavaFX对

    • 我需要用JavaFX创建一个对话框。我知道我可以通过修改modal、owner和resizable属性使Stage的行为像一个对话框。 但是我如何从舞台窗口隐藏“最小化”和“最大化”按钮呢?典型的对话框只有“关闭”按钮。

    • 我的目标是使用MFC创建一个无框架对话框,它是像图中所示的普通矩形,我对MFC应用程序有基本的了解。

    • 问题内容: 我有一个运行一些嵌入式Python脚本的MFC应用程序。我正在尝试使该嵌入式脚本创建模态对话框之一,但是我没有取得太大的成功。 谁能指出我进行模态对话的方式吗?我需要为此使用Windows函数还是仅Tk或Python函数就足够了? 对于我搜索过的内容,似乎以下功能组合可以发挥作用,但它们似乎没有按我期望的方式工作: 问题答案: 是使窗口成为“应用程序模式”的适当机制。也就是说,它从同一

    • 我不知道为什么youtue_title和youtube_description是空的???在我添加文本到这个编辑文本???我一直这样做为什么现在它不工作??? 有问题吗,因为它在弹出窗口中?