我正在创建一个对话框并设置布局的setContentView。我以编程方式在对话框setContentView中添加按钮,图像到布局。现在我如何将对话框视图分配给另一个视图。 这是一个布局分配给下面的视图
View getview=R.layout.tamil_alphabet_speak_word;
同样,如何将对话框视图分配给另一个视图。由于我以编程方式将所有元素添加到视图“TamilAlphabets”中,因此子元素为null,它返回以下代码。
Alphbetdialog=new Dialog(TamilAlphabets.this);
Alphbetdialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
Alphbetdialog.setContentView(R.layout.tamil_alphabetsdialog);
(adding elements to the layout "TamilAlphabets" code
..............
)
LayoutInflater inflator=(LayoutInflater)TamilAlphabets.this.getSystemService
(TamilAlphabets.this.LAYOUT_INFLATER_SERVICE);
View row=inflator.inflate(tamil_alphabetsdialog, Parent,false);
LinearLayout l1=(LinearLayout)row.findViewById(R.id.alphabetlayout1);
ViewGroup vg=(ViewGroup)l1;
vg.getChildCount();
所以我需要将对话框视图分配给另一个视图我该怎么做。 我需要这样的东西
View getview=<I need dialog box view>
答案 0 :(得分:0)
您应该避免直接使用Dialog
类,而是使用Dialog
子类或DialogFragment
https://developer.android.com/guide/topics/ui/dialogs.html:
Dialog类是对话框的基类,但您应该避免直接实例化Dialog。而是使用以下子类之一:
AlertDialog 一个对话框,可以显示标题,最多三个按钮,可选项列表或自定义布局。
DatePickerDialog或TimePickerDialog 带有预定义UI的对话框,允许用户选择日期或时间。
在任何情况下我都猜测你想要的是一个自定义对话框,而在这种情况下使用DialogFragment
类的recomendaded是一个例子
对话框片段布局
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/textView1"
android:layout_width="match_parent"
android:layout_height="match_parent">
对话类
public class DialogExampleFragment扩展DialogFragment {
private static final String ARG_PARAM = "extra:PARAM";
private String mText;
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Bundle arguments = getArguments();
mText = arguments.getString(ARG_PARAM);
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
Dialog dialog = super.onCreateDialog(savedInstanceState);
dialog.setTitle("title");
return dialog;
}
public static DialogExampleFragment newInstance(String message) {
Bundle args = new Bundle();
args.putSerializable(ARG_PARAM, message);
DialogExampleFragment fragment = new DialogExampleFragment();
fragment.setArguments(args);
return fragment;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View root = inflater.inflate(R.layout.fragment_dialog_example, container, false);
TextView t = (TextView) root.findViewById(R.id.textView1);
t.setText(mText);
return root;
}
}
显示为对话框
DialogExampleFragment.newInstance("Message")
.show(getFragmentManager(), "dialog");
注意,因为DialogFragment是一个片段,它具有能够显示为对话框或常规片段的优势,您可以获得我在上面发布的链接上的所有信息