修改Spinner的Dialog的疑问。谢谢指导

forgottenp 2010-10-20 04:24:05
打算继承Spinner然后修改其弹出的Dialog的样式,但是遇上问题。

在Spinner的源码中,只有两个地方见到Dialog.
一个是
    public void onClick(DialogInterface dialog, int which) {
setSelection(which);
dialog.dismiss();
}

这个是用于点击某一个选项的时候用的,所以不是这个。

另一个是
    public boolean performClick() {
boolean handled = super.performClick();

if (!handled) {
handled = true;
Context context = getContext();

final DropDownAdapter adapter = new DropDownAdapter(getAdapter());

AlertDialog.Builder builder = new AlertDialog.Builder(context);
if (mPrompt != null) {
builder.setTitle(mPrompt);
}
builder.setSingleChoiceItems(adapter, getSelectedItemPosition(), this).show();
}

return handled;
}

boolean android.widget.Spinner.performClick()
Call this view's OnClickListener, if it is defined.

Returns:
True there was an assigned OnClickListener that was called, false otherwise is returned.

好奇怪,是当没有定义onclicklistener的时候才调用这个函数。的确,修改这个if中的代码不影响效果,即使里面为空,Dialog也会正常运行。当我硬是把“非”去掉的话,结果就是有两个Dialog。

这个表明,在其他地方有呼叫Dialog的地方。但是明明Spinner的源码,只有上面的OnClick,而且这个Onclick是响应Dialog出现后的点击的。

请问有人能指导下,究竟哪里是展示Dialog的代码吗?这样我才能修改这个Spinner。

谢谢指导。
...全文
282 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复

80,350

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧