首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于CustomDialog

关于CustomDialog
EN

Stack Overflow用户
提问于 2011-11-26 08:12:50
回答 3查看 119关注 0票数 0

我应该列一个可点击的项目列表。我现在写的是文字。如何使它们可点击?对不起,我刚开始用Android编程。你能帮我写代码吗?

代码语言:javascript
复制
public class CustomDialog extends Dialog 
{
    public CustomDialog(Context context) 
    {
        super(context, android.R.style.Theme_Translucent_NoTitleBar);
    }

    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        //requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.privacy_popup);

        TextView text = ((TextView)this.findViewById(R.id.text));
        text.setText(Html.fromHtml("<b>item<b>"));
        //text.setText("Privacy");

        TextView text2 = (TextView) findViewById(R.id.text2);
        text2.setText(Html.fromHtml("<b>item2<b>"));

        TextView text3 = (TextView) findViewById(R.id.text3);
        text3.setText(Html.fromHtml("<b>item3<b>"));

        TextView text4 = (TextView) findViewById(R.id.text4);
        text4.setText(Html.fromHtml("<b>item4<b>"));
    }
}
EN

回答 3

Stack Overflow用户

发布于 2011-11-26 08:31:20

如果可能的话,我建议你使用DialogFragment,但无论如何,扩展对话框真的很容易,你可能想从官方的安卓指南中检查一下Custom Dialog

票数 0
EN

Stack Overflow用户

发布于 2011-11-26 08:35:21

如果您被迫使用TextView元素,则可以按如下方式实现TextView onClickListener侦听器:

代码语言:javascript
复制
textView.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {
        // TODO : do something

    }
});
票数 0
EN

Stack Overflow用户

发布于 2011-11-26 09:24:20

您甚至不需要扩展Dialog和创建自定义对话框;AlertDialog提供了您正在寻找的所有功能。下面只不过是开发者网站上Dialog topic的一个复制粘贴。

代码语言:javascript
复制
final CharSequence[] items = {"Red", "Green", "Blue"};
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Pick a color");
builder.setItems(items, new DialogInterface.OnClickListener() {
    public void onClick(DialogInterface dialog, int item) {
        Toast.makeText(getApplicationContext(), 
            items[item], Toast.LENGTH_SHORT).show();
    }
});
AlertDialog alert = builder.create();

这将导致:

builder.setItems(...)上的内容替换为:

代码语言:javascript
复制
builder.setSingleChoiceItems(items, -1, new DialogInterface.OnClickListener() { ... } );

要为每个选项添加一个单选按钮,或者:

代码语言:javascript
复制
builder.setMultiChoiceItems(items, null, new DialogInterface.OnMultiChoiceClickListener() { ... } );

用于复选框。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8275323

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档