Android中的“自定义警报”对话框

贾德·贾特

我想设计一个带有编辑文本的自定义对话框,该文本需要用户输入,我也想设计对话框的自定义布局,任何人都可以帮忙

哈雷什·切拉纳(Haresh Chhelana)
// Try this way,hope this will help you to solve your problem...

**activity_main.xml**

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:gravity="center">

    <TextView
        android:id="@+id/txtDialogValue"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <Button
        android:id="@+id/btnOpenDialog"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="20dp"
        android:text="Open Dialog"/>


</LinearLayout>

**custom_dialog.xml**

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <TextView
        android:id="@+id/txtHeader"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@android:color/white"
        android:padding="5dp"/>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="10dp"
        android:orientation="vertical"
        android:gravity="center">
        <EditText
            android:id="@+id/edtInput"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="Input"/>

        <Button
            android:id="@+id/btnOk"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="20dp"
            android:text="Ok"/>
    </LinearLayout>

</LinearLayout>

**MainActivity.java**

public class MainActivity extends FragmentActivity {

    private TextView txtDialogValue;
    private Button btnOpenDialog;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        txtDialogValue = (TextView) findViewById(R.id.txtDialogValue);

        btnOpenDialog = (Button) findViewById(R.id.btnOpenDialog);

        btnOpenDialog.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                customDialog(MainActivity.this,"Enter value","Ok",R.layout.custom_dialog,new CustomDialogClickListener() {
                    @Override
                    public void onClick(String input) {
                        txtDialogValue.setText(input);
                    }
                });
            }
        });

    }


    public void customDialog(final Context context,final String title,final String buttonCaption, final int layoutID,final CustomDialogClickListener target) {

        ((Activity)context).runOnUiThread(new Runnable() {

            @Override
            public void run() {

                final Dialog dialog = new Dialog(context,android.R.style.Theme_Translucent_NoTitleBar);
                dialog.setContentView(layoutID);

                final TextView txtHeader = (TextView) dialog
                        .findViewById(R.id.txtHeader);
                final EditText edtInput = (EditText) dialog
                        .findViewById(R.id.edtInput);
                final Button btnOk = (Button) dialog
                        .findViewById(R.id.btnOk);
                txtHeader.setText(title);
                btnOk.setText(buttonCaption);
                btnOk.setOnClickListener(new View.OnClickListener() {

                    @Override
                    public void onClick(View v) {
                        target.onClick(edtInput.getText().toString());
                        dialog.dismiss();
                    }
                });
                dialog.show();
            }
        });
    }

    interface CustomDialogClickListener{
        public void onClick(String input);
    }

}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在服务android中显示自定义警报对话框

Android-如何在自定义警报对话框中检查按钮单击?

从Android中的ListView适配器启动自定义警报对话框

如何关闭“自定义警报”对话框

如何自定义警报对话框,以使按钮适合警报对话框

通过android自定义警报对话框传递额外数据

如何在Android中使用网格视图创建自定义警报对话框?

如何在自定义警报对话框中刷新内容/ UI

在自定义警报对话框中获取单选按钮的值

在自定义警报对话框中从 Edittext 检索数据时显示空值?

使 Multiautocompletetextview 在警报对话框中添加按钮上方可滚动,我想要这种类型的自定义警报对话框

如何将自定义警报对话框中的项目添加到列表视图?

制作圆形自定义警报对话框:着色区域不正确

Flutter-自定义警报对话框未显示

在自定义警报对话框中使用时 ExpandableListView 对象为 null

具有RecyclerView的自定义警报对话框

自定义警报对话框不会关闭

具有多个EditText的自定义警报对话框

两个活动的一个自定义警报对话框

如何制作自定义警报对话框全屏

自定义警报对话框搜索项目结果错误

自定义警报对话框的背景色

具有多个视图的自定义警报对话框

如何在Xamarin Android中基于设备的宽度和高度以编程方式创建自定义警报对话框?

自定义对话框警报

我可以在android中自定义多选警报对话框吗?

如何在自定义警报对话框中将信息从活动传递到编辑文本

jQuery中的自定义警报和确认框

自定义警报对话框在Android 4.x上看起来很奇怪