我想做什么:
创建自定义警报对话框.按钮就像任何警报对话框,但上面是两个TextEdit输入框.我不想创建自定义对话框,而是自定义警报对话框
这是我正在尝试的#3:http: //developer.android.com/guide/topics/ui/dialogs.html
它说:
AlertDialog.Builder builder;
AlertDialog alertDialog;
Context mContext = getApplicationContext();
LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(LAYOUT_INFLATER_SERVICE);
View layout = inflater.inflate(R.layout.custom_dialog,
(ViewGroup) findViewById(R.id.layout_root));
TextView text = (TextView) layout.findViewById(R.id.text);
text.setText("Hello, this is a custom dialog!");
builder = new AlertDialog.Builder(mContext);
builder.setView(layout);
alertDialog = builder.create();
Run Code Online (Sandbox Code Playgroud)
文件说:
View layout = inflater.inflate(R.layout.custom_dialog,
(ViewGroup) findViewById(R.id.layout_root));
Run Code Online (Sandbox Code Playgroud)
其中第一个参数是布局资源ID,第二个参数是根视图的ID.
问题是我不知道布局根是什么?这是一个我将在一个Activity中启动的对话框.如果活动我应该使用布局ID吗?layout_root是从帽子中拉出来的吗?
还尝试过:
View layout = inflater.inflate(R.layout.my_custom_layout,
(ViewGroup) findViewById(android.R.id.content).getRootView());
Run Code Online (Sandbox Code Playgroud)
结果空指针.
Cze*_*ogy 36
即使是较旧的问题,本文可能对搜索此答案的其他人有用:
如果您在Android应用程序中使用LayoutInflater编写了类似下面的代码:
Run Code Online (Sandbox Code Playgroud)inflater.inflate(R.layout.my_layout, null);请继续阅读,因为你做错了,我想向你解释原因.
...... 但 ......
每条规则都有例外
当然,
null在通货膨胀期间你可以真正为父母辩护,但他们很少.当您为要附加到的自定义布局充气时会发生一个这样的实例AlertDialog.考虑以下示例,我们希望使用相同的XML布局,但将其设置为对话框视图:Run Code Online (Sandbox Code Playgroud)AlertDialog.Builder builder = new AlertDialog.Builder(context); View content = LayoutInflater.from(context).inflate(R.layout.item_row, null); builder.setTitle("My Dialog"); builder.setView(content); builder.setPositiveButton("OK", null); builder.show();这里的问题是AlertDialog.Builder支持自定义视图,但不提供采用布局资源的setView()实现; 所以你必须手动充气XML.但是,因为结果将进入不公开其根视图的对话框(实际上它还不存在),我们无法访问布局的最终父级,因此我们不能将其用于通货膨胀.事实证明,这是无关紧要的,因为AlertDialog无论如何都会擦除布局上的任何LayoutParams并用match_parent替换它们.
本文解释了为什么在大多数其他情况下应该提供父级ViewGroup而不是Dialog构建.
你试过这个吗?
View layout = inflater.inflate(R.layout.custom_dialog,null);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8729 次 |
| 最近记录: |