gpt4 book ai didi

android - 当我将 AlertDialog.Builder 的 setSingleChoiceItems 与 listadapter 一起使用时,单选按钮不显示

转载 作者:太空狗 更新时间:2023-10-29 16:09:54 27 4
gpt4 key购买 nike

当我将 AlertDialog.Builder 的 setSingleChoiceItems 与列表适配器一起使用时,单选按钮不显示。如果我使用 Charsequence[] 数组,则会显示单选按钮。请看一下我正在使用的代码。提前致谢!!

公共(public)类 ExampleApp 扩展 Activity {

Context mContext;
ListAdapter myListAdapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

mContext = this;
myListAdapter = new myListAdapter(mContext);
AlertDialog.Builder alt_bld = new AlertDialog.Builder(this);
alt_bld.setTitle("Select any icon");
alt_bld.setSingleChoiceItems(myListAdapter, -1, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
Toast.makeText(getApplicationContext(), "Selected icon = "+imageName[item], Toast.LENGTH_SHORT).show();
}
});
AlertDialog alert = alt_bld.create();
alert.show();
}

private class myListAdapter extends BaseAdapter{
public myListAdapter(Context mContext){
}

@Override
public int getCount() {
// TODO Auto-generated method stub
return imageName.length;
}

@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return position;
}

@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
ViewHolder myViewHolder;
if(convertView == null){
convertView = LayoutInflater.from(mContext).inflate(R.layout.listadapterview, null);
myViewHolder = new ViewHolder();
myViewHolder.txt_icon_name = (CheckedTextView) convertView.findViewById(R.id.CheckedTextView01);

convertView.setTag(myViewHolder);
}
else{
myViewHolder = (ViewHolder) convertView.getTag();
}


myViewHolder.txt_icon_name.setText(imageName[position]);
return convertView;
}

class ViewHolder {
CheckedTextView txt_icon_name;
}
}

String[] imageName = {"icon1", "icon2", "icon3"};

}//用于列表适配器 View 的 XML

最佳答案

我遇到了类似的问题。即使我使用的是 CheckedTextView,单选按钮也没有显示。

解决方案是将以下内容添加到布局文件中的 CheckedTextView 元素:

android:checkMark="?android:attr/listChoiceIndicatorSingle"

这是我的“dialog_list_item.xml”文件:

<?xml version="1.0" encoding="utf-8"?>
<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/dialog_list_item_title"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="10dp"
android:textSize="16sp"
android:checkMark="?android:attr/listChoiceIndicatorSingle"
>
</CheckedTextView>

下面是创建列表适配器的代码:

SimpleCursorAdapter adapter = new SimpleCursorAdapter(
this.getContext(), R.layout.dialog_list_item,
cursor,
new String[]{"title"},
new int[]{R.id.dialog_list_item_title}
);

我用谷歌搜索来找到答案,但我最终在 sdk 中找到了正确的答案:

$android_sdk_home/platforms/android-x.x/data/res/layout/simple_list_item_single_choice.xml

有时源代码比任何谷歌搜索都好。 ;)

关于android - 当我将 AlertDialog.Builder 的 setSingleChoiceItems 与 listadapter 一起使用时,单选按钮不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5150774/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com