据我们所知,alertdialog.builder.setview
函数在 API 21
中引入,它允许我们设置布局。有没有其他方法可以实现这个,我也不想使用 support library
这就是我想要的
听到的是代码
这是datetime_dialog.xml
文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/linearLayout2"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TimePicker
android:id="@+id/timePicker"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<DatePicker
android:id="@+id/datePicker"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:calendarViewShown="false" />
</LinearLayout>
java文件代码
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
MainActivity.this, AlertDialog.THEME_HOLO_DARK);
alertDialogBuilder.setView(R.layout.datetime_dialog);
alertDialogBuilder.setPositiveButton("Done",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
// go to a new activity of the app
Intent positveActivity = new Intent(
getApplicationContext(),
MainActivity.class);
startActivity(positveActivity);
}
});
// set negative button: No message
alertDialogBuilder.setNegativeButton("Cancel",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
// cancel the alert box and put a Toast to the
// user
dialog.cancel();
}
});
AlertDialog alertDialog = alertDialogBuilder.create();
// show alert
alertDialog.show();
我想支持这个直到 API 9
是否可能
最佳答案
您首先需要从布局创建 View ,其中:
View v = LayoutInflater.inflate(R.layout.ID, null);
AlertDialog.Builder ad = new AlertDialog.Builder(Activity);
ad.setview(v);
关于android - API below 21 的 alertdialog.builder.setview 的替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32979297/