取代默認的Android對話框列表我設計了一個自定義的layout
我dialog
list
,使用戶選擇從list
只有一個選擇,我想用它代替默認dialog
的。我真的不知道該怎麼做。 我有這fragment
interface
下面顯示;如何使用自定義對話框列表
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v4.app.DialogFragment;
import android.widget.Toast;`
public class SingleChoiceClass extends DialogFragment {`
final CharSequence[] items = {"b1", "b2", "b3", "b4"};
String selection;
@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());`
builder.setTitle("Choose").setSingleChoiceItems(items, -1, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
switch (arg1){
case 0:
selection = (String) items[arg1];
break;
case 1:
selection = (String) items[arg1];
break;
case 2:
selection = (String) items[arg1];
break;
case 3:
selection = (String) items[arg1];
break;
}
}
}).setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// Display toast with the user's selection
Toast.makeText(getActivity(), "Your choice is : " + selection, Toast.LENGTH_SHORT).show();
}
});
return builder.create();
}
}
而且我自定義layout
是
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="350dp"
android:layout_height="350dp"
android:background="@color/button_material_light"
android:layout_gravity="center">
<TextView
android:layout_width="350dp"
android:layout_height="50dp"
android:text="@string/textview"
android:layout_gravity="top"
android:paddingLeft="5dp"
android:paddingRight="5dp"
android:layout_marginTop="20dp"
android:textSize="30sp"
android:textAlignment="center"
android:textStyle="normal"
android:id="@+id/textview" />
<RadioGroup
android:layout_width="match_parent"
android:layout_height="wrap_content">
<RadioButton
android:layout_width="match_parent"
android:layout_height="55dp"
android:text="@string/radio1"
android:checked="false"
android:id="@+id/radio1"
android:textSize="25sp"
android:background="#2bf308"
android:clickable="true" />
<RadioButton
android:layout_width="match_parent"
android:layout_height="55dp"
android:checked="false"
android:text="@string/radio2"
android:id="@+id/radio2"
android:textSize="25sp"
android:background="#f4fd02"
android:clickable="true" />
<RadioButton
android:layout_width="match_parent"
android:layout_height="55dp"
android:text="@string/radio3"
android:checked="false"
android:id="@+id/radio3"
android:textSize="25sp"
android:background="#fb8e35"
android:clickable="true" />
<RadioButton
android:layout_width="match_parent"
android:layout_height="55dp"
android:text="@string/radio4"
android:checked="false"
android:id="@+id/radio4"
android:textSize="25sp"
android:background="#fc3434"
android:clickable="true" />
</RadioGroup>
<Button
android:layout_width="match_parent"
android:layout_height="65dp"
android:text="@string/button"
android:id="@+id/button2"
android:layout_gravity="center_horizontal"
android:textSize="25sp"
android:clickable="true" />
</LinearLayout>
代碼工作正常,但我需要用我的自定義dialog
而不是默認的。提前致謝。
[這個答案](http://stackoverflow.com/a/17462904/4924793)在解決這個問題幫我。 – Emzor