AlertDialog style buttons for an Activity

后端 未结 2 1157
没有蜡笔的小新
没有蜡笔的小新 2021-01-05 04:49

I have an activity with a Save and Cancel button at the bottom.

In AlertDialog, the buttons are displayed inside a styled container view of some sort.

How c

相关标签:
2条回答
  • 2021-01-05 05:51

    I do some thing like this:

    LinearLayout dialogLayout = (LinearLayout) ((LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.dialog_addeditrecord, null);
    

    I then use the dialogLayout to call findViewById() to pull in the buttons and other views and setup OnClickListeners and such...

    then to show the dialog:

    builder = new AlertDialog.Builder(this);
    
    builder.setView(dialogLayout);
    
    builder.create().show();
    
    0 讨论(0)
  • 2021-01-05 05:53

    There are solutions given elsewhere that work. In short, you can simply use style attributes in your xml to achieve this. For instance, style="?android:attr/buttonBarStyle" and style="?android:attr/buttonBarButtonStyle" will do the job (for API 11+). Here is an example of two buttons horizontally put together.

    <LinearLayout
        style="?android:attr/buttonBarStyle"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:measureWithLargestChild="true"
        android:orientation="horizontal"
        android:paddingTop="0dip" >
    
        <Button
            style="?android:attr/buttonBarButtonStyle"
            android:layout_width="0dip"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text= "Ok" />
    
        <Button
            style="?android:attr/buttonBarButtonStyle"
            android:layout_width="0dip"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Cancel" />
    </LinearLayout>
    

    The only thing that remains, is that there is a horizontal line right above the buttons in an alertDialog, which the above code will not create. If you want to have that horizontal line, it should be added manually in the xml, above the LinearLayout. This will give you the horizontal line:

    <View
        android:layout_width="fill_parent"
        android:layout_height="1dp"
        android:layout_marginBottom="0dp"
        android:background="?android:attr/dividerVertical" /> 
    
    0 讨论(0)
提交回复
热议问题