0

当我点击我的活动的列表视图时,我想显示 alertdialog,我有一个显示 alertdialog 的代码,但我知道我的代码有问题,我不知道如何修复它,警报没有像我想要的那样显示. 这是我的代码:

@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();

}

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

4

2 回答 2

2

我猜你的活动会扩展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();

希望这对你有用。

于 2012-09-17T03:16:50.670 回答
0

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

于 2012-09-17T02:16:44.210 回答