我使用SimpleCursorAdapter填充AlertDialog中的列表。 SimpleCursorAdapter使用android.R.layout.simple_list_item_1布局。
弹出对话框。该列表具有正确的条目数量。但没有显示任何内容。如果我选择一个条目,则会突出显示所选条目,并显示光标中的文本。
选择选择正确的条目。
这是我的代码:
Intent dataIntent = new Intent();
dataIntent.setData(Ereignistypen.CONTENT_URI);
Cursor cursor = managedQuery(dataIntent.getData(), new String[] {
Ereignistypen._ID, // 0
Ereignistypen.NAME // 1
}, null, null, Ereignistypen.ORDERBY);
SimpleCursorAdapter typAdapter = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_1, cursor,
new String[] { Ereignistypen.NAME }, new int[] { android.R.id.text1 });
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle(R.string.ereignistyp);
builder.setAdapter(typAdapter, this);
AlertDialog typPicker = builder.create();
typPicker.show();
我错了什么?
我查了Android SimpleCursorAdapter results not displaying in AlertDialog。但这对我没什么帮助。
编辑:
如果我切换到android.R.layout.simple_spinner_item,列表将以丑陋的方式显示。但条目是可见的。
答案 0 :(得分:2)
文字在那里但由于风格而不可见。
我制作了自己的布局,风格略有不同。 这是sdk源中的原始simple_list_item_1。
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:gravity="center_vertical"
android:paddingLeft="6dip"
android:minHeight="?android:attr/listPreferredItemHeight"
/>
我延伸到以下:
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="?android:attr/textColorPrimaryInverseDisableOnly"
android:gravity="center_vertical"
android:paddingLeft="6dip"
android:minHeight="?android:attr/listPreferredItemHeight"
/>
设置textcolor显示解决了问题 如果我使用AlertDialog.builder.setItem
设置项目,我不会使用哪种布局答案 1 :(得分:1)
android.R.layout.simple_list_item_1中没有id.text1这样的项目。 但是simple_list_item_2有一个。
答案 2 :(得分:1)
两者都有正确的ID,这里是源代码......
RES / RES /布局/ simple_list_item_1.xml
<TextView android:id="@android:id/text1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:gravity="center_vertical" android:paddingLeft="6dip"
android:minHeight="?android:attr/listPreferredItemHeight"/>
RES / RES /布局/ simple_spinner_item.xml
<TextView android:id="@android:id/text1"
style="?android:attr/spinnerItemStyle"
android:singleLine="true"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
我认为问题与风格有关,可能是文字存在但不可见。这是2 TextView之间的唯一区别。我很确定如果您使用完全相同的TextView编写自己的xml但没有样式,则文本可见。