从简单的游标适配器填充微调器
Populate spinner from simple cursor adapter
我在使用简单的游标适配器从 sqlite 数据库填充微调器时遇到了一些麻烦。我必须使用简单的游标适配器而不是数组适配器。我的MainActivity、函数和xml文件如下:
public class MainActivity extends BaseActivity {
private Spinner workerId = (Spinner) findViewById(R.id.spinner);
c = getCursor();
String[] columns = new String[]{Database.mylist};
int[] to = new int[] { R.id.spinner };
myAdapter = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_1, c, columns,to, 0);
workerId.setAdapter(myAdapter);
..............
..............
}
函数如下:
public Cursor getCursor() {
Cursor c = database.rawQuery("select * from " + Database.mylist + " where isCancel = 0", null);
return c;
}
Xml 文件如下;
MainActivity.xml
<Spinner
android:id="@+id/spinner"
android:layout_width="match_parent"
android:layout_marginTop="10dp"
android:layout_marginLeft="5dp"
android:layout_height="wrap_content" />
当我 运行 应用程序时,会显示以下屏幕。有数据,但似乎是空的。我有 _id,名称列。
empty spinner
感谢您的帮助。
改变
int[] to = new int[] { R.id.spinner };
到
int[] to = new int[] { android.R.id.text1 };
您可以在这里阅读更多关于 SimpleCursorAdapter 的信息:Android: Using SimpleCursorAdapter to get Data from Database to ListView
您还使用 Database.mylist 作为列名称和 table 名称,正如 PPartisan 在评论中指出的那样。
我在使用简单的游标适配器从 sqlite 数据库填充微调器时遇到了一些麻烦。我必须使用简单的游标适配器而不是数组适配器。我的MainActivity、函数和xml文件如下:
public class MainActivity extends BaseActivity {
private Spinner workerId = (Spinner) findViewById(R.id.spinner);
c = getCursor();
String[] columns = new String[]{Database.mylist};
int[] to = new int[] { R.id.spinner };
myAdapter = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_1, c, columns,to, 0);
workerId.setAdapter(myAdapter);
..............
..............
}
函数如下:
public Cursor getCursor() {
Cursor c = database.rawQuery("select * from " + Database.mylist + " where isCancel = 0", null);
return c;
}
Xml 文件如下;
MainActivity.xml
<Spinner
android:id="@+id/spinner"
android:layout_width="match_parent"
android:layout_marginTop="10dp"
android:layout_marginLeft="5dp"
android:layout_height="wrap_content" />
当我 运行 应用程序时,会显示以下屏幕。有数据,但似乎是空的。我有 _id,名称列。
empty spinner
感谢您的帮助。
改变
int[] to = new int[] { R.id.spinner };
到
int[] to = new int[] { android.R.id.text1 };
您可以在这里阅读更多关于 SimpleCursorAdapter 的信息:Android: Using SimpleCursorAdapter to get Data from Database to ListView
您还使用 Database.mylist 作为列名称和 table 名称,正如 PPartisan 在评论中指出的那样。