【发布时间】:2017-11-23 05:19:36
【问题描述】:
我有一个选项卡式活动,在 Tab2.Java 中, 我想在按钮单击时显示自定义对话框。 (对于自定义对话框,我有一个单独的 xml 文件,名为:dg_selct.xml。) 代码:
public class Tab2 extends Fragment {
Button btn;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.tab2, container, false);
btn=(Button)v.findViewById(R.id.button2);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final AlertDialog.Builder dialog = new AlertDialog.Builder(getContext());
View bView = getLayoutInflater().inflate(R.layout.dg_selct,null);
dialog.setView(bView);
AlertDialog customDialog = dialog.create();
customDialog.setTitle("Search");
customDialog.show();
}
});
这里是 dg_selct.xml:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:id="@+id/relativeLayout2"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginBottom="8dp"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="1.0">
<CheckBox
android:id="@+id/chkpg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_below="@+id/textView4"
android:layout_marginStart="63dp"
android:layout_marginTop="27dp"
android:checked="true"
android:text="@string/clspg"
android:textSize="23sp" />
<TextView
android:id="@+id/textView4"
android:layout_width="250dp"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentTop="true"
android:layout_marginEnd="40dp"
android:layout_marginTop="42dp"
android:text="Mark the Groups, You want to Send the Message:"
android:textColor="#000000"
android:textSize="17sp" />
<CheckBox
android:id="@+id/chknur"
android:checked="true"
android:textSize="23sp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignStart="@+id/chkpg"
android:layout_below="@+id/chkpg"
android:layout_marginTop="32dp"
android:text="@string/clsn" />
<CheckBox
android:id="@+id/chkprep"
android:checked="true"
android:textSize="23sp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignStart="@+id/chknur"
android:layout_below="@+id/chknur"
android:layout_marginTop="30dp"
android:text="@string/clsp" />
<CheckBox
android:id="@+id/chkone"
android:checked="true"
android:textSize="23sp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignStart="@+id/chkprep"
android:layout_below="@+id/chkprep"
android:layout_marginTop="35dp"
android:text="@string/cls1" />
<CheckBox
android:checked="true"
android:id="@+id/chktwo"
android:textSize="23sp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignStart="@+id/chkone"
android:layout_below="@+id/chkone"
android:layout_marginTop="24dp"
android:text="@string/cls2" />
<CheckBox
android:id="@+id/chkthree"
android:checked="true"
android:textSize="23sp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignStart="@+id/chktwo"
android:layout_below="@+id/chktwo"
android:layout_marginTop="26dp"
android:text="@string/cls3" />
<CheckBox
android:id="@+id/chkfour"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignStart="@+id/chkthree"
android:layout_below="@+id/chkthree"
android:checked="true"
android:layout_marginTop="30dp"
android:text="@string/cls4"
android:textSize="23sp" />
<CheckBox
android:id="@+id/chkfive"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/chknur"
android:layout_alignEnd="@+id/textView4"
android:layout_marginEnd="32dp"
android:checked="true"
android:text="@string/cls5"
android:textSize="23sp" />
<CheckBox
android:id="@+id/chksix"
android:textSize="23sp"
android:checked="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignStart="@+id/chkfive"
android:layout_alignTop="@+id/chknur"
android:text="@string/cls6" />
<CheckBox
android:id="@+id/chksvn"
android:checked="true"
android:textSize="23sp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignStart="@+id/chksix"
android:layout_alignTop="@+id/chkprep"
android:text="@string/cls7" />
<CheckBox
android:id="@+id/chknine"
android:textSize="23sp"
android:checked="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignStart="@+id/chksvn"
android:layout_alignTop="@+id/chkone"
android:text="@string/cls9" />
<CheckBox
android:id="@+id/chkten"
android:textSize="23sp"
android:checked="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignStart="@+id/chknine"
android:layout_alignTop="@+id/chktwo"
android:text="@string/cls10" />
<CheckBox
android:id="@+id/chkextra"
android:checked="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignStart="@+id/chkten"
android:layout_alignTop="@+id/chkthree"
android:text="@string/clsextra"
android:textSize="23sp" />
</RelativeLayout>
</android.support.constraint.ConstraintLayout>
另外,当我使用 final AlertDialog.Builder dialog = new AlertDialog.Builder(Tab2.this); 而不是 final AlertDialog.Builder dialog = new AlertDialog.Builder(getContext()); 时,编译器会报错:“Builder (android.Content.context) in Builder cannot be applied to com.abc.Tab2”
dg_select.xml 有一些 CheckBoxes 和一个 TextView。但是当显示对话框时,我只看到上面代码中提到的标题。 如何在此对话框中扩充 dg_selct.xml?
【问题讨论】:
-
与问题分享您的自定义布局dg_selct
-
您是否尝试将您的
AlertDialog.Builder(getContext());更改为AlertDialog.Builder(getActivity());? -
都试过了:
getContext()和getActivity()没有成功
标签: android android-layout android-alertdialog layout-inflater customdialog