我确定我在这里错过了重点,所以我希望有人能解释一下。
我想在用户触摸ImageView. 我看了看,AlertDialog文档说......
如果要显示更复杂的视图,请查找名为“custom”的 FrameLayout 并将您的视图添加到其中:
...使用以下代码...
FrameLayout fl = (FrameLayout) findViewById(android.R.id.custom);
fl.addView(myView, new LayoutParams(MATCH_PARENT, WRAP_CONTENT));
Run Code Online (Sandbox Code Playgroud)
因此,作为测试,我在 onCLick() 方法中尝试了以下操作...
TextView tv = new TextView(this);
tv.setText("Hello World");
FrameLayout customFrameLayout = (FrameLayout) findViewById(android.R.id.custom);
customFrameLayout.addView(tv, new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));
Run Code Online (Sandbox Code Playgroud)
上面我调用的最后一行addView抛出 aNullPointerException这让我认为android.R.id.custom.
所以问题是,上面有什么问题,还有没有更好的方法来创建自定义弹出窗口(也许通过使用Dialog类或扩展它)?
注意:我仅TextView在此示例中用作测试,我想为实际弹出窗口添加更复杂的内容。
一种选择是创建一个对话框Activity并使用对话框主题设置其样式:
<activity android:theme="@android:style/Theme.Dialog">
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请参阅应用主题。
| 归档时间: |
|
| 查看次数: |
3469 次 |
| 最近记录: |