Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何使用listview显示alertdialog?_Android_Eclipse_Listview_Android Alertdialog - Fatal编程技术网

Android 如何使用listview显示alertdialog?

Android 如何使用listview显示alertdialog?,android,eclipse,listview,android-alertdialog,Android,Eclipse,Listview,Android Alertdialog,我想在我的活动上单击列表视图时显示alertdialog,我有一个显示alertdialog的代码,但我知道我的代码有问题,我不知道如何修复它,警报没有显示我想要的。 这是我的密码: @Override protected void onListItemClick(ListView l, View v, int position, long id) { new bike_type_dao(responsetype).view_bike_type(); final Entit

我想在我的活动上单击列表视图时显示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();

}
@覆盖
受保护的void onListItemClick(列表视图l、视图v、整数位置、长id){
新的bike_type_dao(responsetype).view_bike_type();
最终实体品牌=adapterBrand.getItem(位置);
生成器=新建对话框(此对话框);
builder.setTitle(brand.getBrand_name());
LayoutInflater li=(LayoutInflater)这个
.getSystemService(上下文布局\充气机\服务);
视图=li.充气(R.layout.tab\u brand\u活动,null,false);
builder.setContentView(视图);
builder.setCancelable(true);
listtype=(ListView)builder.findViewById(R.id.list\u sepeda);
setOnItemClickListener((OnItemClickListener)this);
listtype.setAdapter(新的ArrayAdapter(此,
android.R.layout.simple_list_item_1,arrayList));
listtype.showContextMenu();
builder.show();
}

我希望有人能帮我解决这个问题。谢谢。

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

我猜您的活动扩展了
ListActivity
(否则,它不会首先使用
onListItemClick
方法进行覆盖

根据API文档,当单击listView中的某个项目时,会调用
onListItemClick
。此时,您还将活动设置为
OnItemClick监听器
,这意味着您也在该活动的某个地方定义了方法
OnItemClick
。您可以将该代码和但在
onListItem中单击它,因为它将执行相同的操作

至于要显示的
alertDialog
,我通常只使用
alertDialog.Builder
来制作和显示简单的alertDialog。它可以工作,而且可能比直接使用
Dialog
类简单

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

希望这对您有用。

我已经像您所说的那样进行了更改,我已经用listtype.setOnClickListener((OnClickListener)this)替换了onitemclick;但它不起作用,我检查了DDMS,、应用程序得到了我想要显示的内容,但alertdialog没有显示,、它是强制关闭。我按照你说的做了,但它仍然不起作用,警报仍然没有显示。然后我猜不知何故,
onListItemClick
可能不会被调用。你可以尝试在其中添加一条简单的日志消息,然后查看LogCat查看是否正在调用它:例如:
Log.d(“列表项”,“列表项已被单击”)
否则,您也可以尝试在
onCreate
中调用
setOnItemClickListener
到您的列表视图,并将所有需要的代码放入方法
onListItemClick
(您需要让您的活动实现
OnItemClickListener
)。