[英]Radio buttons doesn't show up when I use setSingleChoiceItems of AlertDialog.Builder with listadapter
當我將AlertDialog.Builder的setSingleChoiceItems與listadapter一起使用時,單選按鈕不顯示。 如果我使用Charsequence []數組,則會顯示單選按鈕。 請查看我使用的代碼。 提前致謝!!
公共類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"};
} // XML用於listadapter視圖
我有一個類似的問題。 即使我使用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
有時源代碼比任何Google搜索都要好。 ;)
大概R.layout.listadapterview
不是CheckedTextView
,這是singleChoice
正常工作所需要的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.