首先说明为什么我问这个问题......
我正在为一家机械车间开设一个调度应用程序。我有一个包含机器,工作和员工表的数据库。可能并非所有这些机器都有作业或操作员,所以我需要一种方法来向旋转器添加“无”(有几个原因我不会将其添加到数据库本身)。为了实现这一点,我决定从数据库中获取一个游标并迭代它,将我需要的那些位加载到一个ArrayList中并在末尾添加一个“None”元素。
这很好用,但现在我遇到了一个我似乎无法弄清楚的问题。
Job表有两列(不包括索引):作业号和部件号。我创建了一个自定义布局将它们放在一起,然后在微调器中使用它(所以你会在微调器的每一行上看到Job# - Part#)。从光标填充它很简单。试图将其转换为两个数组让我感到难过。
我可以将光标中的数据放入两个数组中,没有任何问题,但我无法弄清楚如何将它们与布局中包含的布局ID相关联。
我是Android的新手,很久以前在Java学习过,所以如果我错过了一些明显的东西,请指出来!
listlayoutdouble.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="horizontal" >
<TextView
android:id="@+id/ListItem1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:minHeight="?android:attr/listPreferredItemHeight"
android:paddingLeft="12dip"
android:gravity="left|center_vertical"
android:layout_weight="1"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="@+id/ListItem2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:minHeight="?android:attr/listPreferredItemHeight"
android:paddingRight="12dip"
android:gravity="right|center_vertical"
android:layout_weight="1"
android:textAppearance="?android:attr/textAppearanceLarge" />
</LinearLayout>
到目前为止我所拥有的:
private void fillJobSpinner() {
Cursor jobsCursor = mDBHelper.fetchAllJobs();
startManagingCursor(jobsCursor);
ArrayList<String> jobnumbers = new ArrayList<String>();
ArrayList<String> jobnparts = new ArrayList<String>();
if (jobsCursor != null) {
operatorsCursor.moveToFirst();
while (operatorsCursor.isAfterLast() == false) {
jobnumbers.add(jobsCursor.getString(jobsCursor
.getColumnIndex(ScheduleDBAdapter.JOB_NUMBER)));
jobnparts.add(jobsCursor.getString(jobsCursor
.getColumnIndex(ScheduleDBAdapter.JOB_PART)));
jobsCursor.moveToNext();
}
jobnumbers.add("None");
jobparts.add("None");
}
}
答案 0 :(得分:1)
我认为您需要的是为您的微调器定制适配器。
您需要扩展BaseAdapter
http://developer.android.com/reference/android/widget/BaseAdapter.html
然后覆盖getView方法。
快速谷歌出现了这个教程:
http://app-solut.com/blog/2011/03/using-custom-layouts-for-spinner-or-listview-entries-in-android/