代码之家  ›  专栏  ›  技术社区  ›  Sam

Android:警报对话框标题的位置在下面

  •  0
  • Sam  · 技术社区  · 6 年前

    enter image description here

    警报对话框代码

    ListView listView = (ListView)findViewById(R.id.listView);
    
    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view,
                                int position, long id) {
            final AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this,
                    android.R.style.Theme_Holo_Light_Dialog);
            View view2 = getLayoutInflater().inflate(R.layout.dialog,null);
            builder.setView(view2);
            builder.setTitle("Edit")
                    .setCancelable(false)
                    // Add action buttons
                    .setPositiveButton("OK", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int id) {
                            //
                            refreshData();
                        }
                    })
                    .setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int id) {
    
                        }
                    })
                    .setIcon(android.R.drawable.ic_menu_edit)
                    .show();
        }
    });
    

    警报对话框的布局

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/dialog_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:padding="10dp">
    
        <EditText
            android:id="@+id/edittext_date"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:ems="10"
            android:hint="Date"
            android:inputType="text" />
    
        <EditText
            android:id="@+id/edittext_point"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:ems="10"
            android:hint="Point"
            android:inputType="numberSigned" />
    
        <EditText
            android:id="@+id/edittext_description"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:ems="10"
            android:hint="Description"
            android:inputType="text" />
    
    </LinearLayout>     
    
    1 回复  |  直到 6 年前
        1
  •  0
  •   Luca Nicoletti    6 年前

    您正在对对话框使用已弃用的样式。试试这个:

    final AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
    

    这对我很有效。


    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->  
        ...
        <item name="alertDialogTheme">@style/AlertDialogStyle</item> 
        ...
    </style>
    <style name="AlertDialogStyle" parent="Theme.AppCompat.Light.Dialog.Alert">
        <item name="colorAccent">#c0ff00</item>
        <item name="android:titleTextStyle">@style/MyTextStyle</item>
    </style>