【问题标题】:how to make alertdialog show with listview?如何使用 listview 显示 alertdialog?
【发布时间】:2012-09-17 02:12:52
【问题描述】:

我想在单击我的活动的列表视图时显示警报对话框,我有一个显示警报对话框的代码,但我知道我的代码有问题,我不知道如何修复它,警报没有显示我想要的是。 这是我的代码:

@Override
protected void onListItemClick(ListView l, View v, int position, long id) {

    new bike_type_dao(responsetype).view_bike_type();


    final Entity_Brand brand = adapterBrand.getItem(position);


    builder = new Dialog(this);
    builder.setTitle(brand.getBrand_name());
    LayoutInflater li = (LayoutInflater) this
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View view = li.inflate(R.layout.tab_brand_activity, null, false);
    builder.setContentView(view);
    builder.setCancelable(true);

    listtype = (ListView) builder.findViewById(R.id.list_sepeda);
    listtype.setOnItemClickListener((OnItemClickListener) this);
    listtype.setAdapter(new ArrayAdapter<Entity_Bike_Type>(this,
            android.R.layout.simple_list_item_1, arrayList));
    listtype.showContextMenu();


    builder.show();

}

我希望有人可以帮助我解决这个问题。谢谢。

【问题讨论】:

    标签: android eclipse listview android-alertdialog


    【解决方案1】:

    我猜你的活动会扩展 ListActivity(否则它不会首先覆盖 onListItemClick 方法。

    根据 API 文档,当您的 listView 中的项目被点击时,onListItemClick 会被调用。此时,您还将活动设置为OnItemClickListener,这意味着您也在此活动的某处定义方法OnItemClick。您可以直接将该代码放入onListItemClick,因为它会做同样的事情。

    至于你想显示的alertDialog,我通常只是坚持使用AlertDialog.Builder来制作和显示简单的alertDialogs。它可以工作,而且可能比直接使用 Dialog 类更简单。

    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setTitle(brand.getBrand_name());
    builder.setCancelable(true);
    builder.show();
    

    希望这对你有用。

    【讨论】:

    • 我已经按照你说的做了,但还是不行,警报仍然没有显示。
    • 那么我的猜测是onListItemClick 可能不会被调用。您可以尝试在其中添加一个简单的 Log 消息并查看 LogCat 以查看它是否被调用:例如:Log.d("List Item", "List item has been clicked") 否则,您也可以尝试在onCreate 中将setOnItemClickListener 调用到您的listView 并放入所有代码你想要方法onListItemClick(你需要让你的活动实现OnItemClickListener
    【解决方案2】:

    嗯,让我澄清一下,当您单击整个列表视图而不是其中的项目时,您想显示一个警报对话框吗?.. 如果是这样,我认为您应该实现 onclick 侦听器而不是 onitemclick 侦听器,尽管我从来没有尝试在单击列表视图时实现警报对话框,但我认为应该这样做

    【讨论】:

    • 我已经像你说的那样改变了,onitemclick 我已经替换为 listtype.setOnClickListener((OnClickListener) this);但它不起作用,我已经检查了 DDMS,应用程序得到了我想要显示的内容,但是 alertdialog 没有显示,它强制关闭。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多