android alertdialog 样式,设置AlertDialog的列表样式

本文介绍了如何在Android中修改AlertDialog的默认样式,以避免列表出现滚动条并适应一屏显示。通过设置Adapter并指定XML布局文件,可以轻松定制每个列表项的高度和样式,而无需重写整个AlertDialog。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

虽然谷歌的sdk已经给大家提供了诸多的接口去实现大家想要的界面,但是时常我们还是因为客户的需求,来对界面进行相应的修改,以更加适合业务的需要。

在进行android界面设计的时候,我在使用AlertDialog进行弹出框的列表选择的时候,发现本来可以一屏显示的列表,因为谷歌自定义的列表样式,出现了滚动条,客户希望一屏就能显示。

第一想到的就是重写AlertDialog的,然后再重新实现布局,但是觉得这样又需要去重写列表选择的功能,考虑到这样一个小的客户需求,重新去重新这么多的代码,实在得不偿失,就开始考虑其它的方法。

最后通过查阅资料,发现可以调用setAdapter,在adapter中指定给item指定一个xml布局文件,然后在布局xml文件中定义相关样式。这样就可以轻松去设置每个Item的高度了和相关的样式了。

布局文件如下

android:id="@android:id/text1"

style="?android:attr/spinnerItemStyle"

android:singleLine="true"

android:layout_width="fill_parent"

android:layout_height="40dp"

android:gravity="center_vertical"

android:ellipsize="marquee"/>

然后直接通过setAdapter()方法去调用即可,不再需要调用setItems();

调用代码如下

spinner_handle= (Button) findViewById(R.id.method_result);

spinner_handle.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

new AlertDialog.Builder(context)

.setTitle("请选择处理结果")

.setAdapter(new ArrayAdapter(MaintainBillActivity.this,R.layout.result_spinner_layout,handle_items) ,new DialogInterface.OnClickListener() {//调用适配器

@Override

public void onClick(DialogInterface dialog, int which) {

// TODO Auto-generated method stub

handle_method_result=handle_items[which];

spinner_handle.setText(handle_method_result);

}

})

.create().show();

}

});

原图,列表项太宽,出现流动条

215568569350eab5672b9393a6cce183.png

上传一下列表的效果图片

3e87bbd9c93e56e78a722110f5483f3a.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值