我已經花了幾天的時間來弄清楚,但沒有運氣。希望我能從這裏得到答案。 我試圖使用cursorLoader方法將數據從我的內容提供者加載到微調器中。 微調似乎已收到數據,但我沒有在下拉列表中找到任何數據,儘管已經創建了幾個下拉項(沒有文本)。如何從光標加載器填充微調器?
我相信問題不是來自我的提供者,因爲如果我使用相同的遊標來檢索數據並將其放入數組,然後將數組綁定到微調器,那麼它會正確顯示所有項目。
下面是我的代碼,
package com.supreme2u.shopper;
import android.app.Activity;
import android.app.LoaderManager;
import android.content.CursorLoader;
import android.content.Loader;
import android.database.Cursor;
import android.os.Bundle;
import android.support.v4.app.NavUtils;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.SimpleCursorAdapter;
import android.widget.Spinner;
import com.supreme2u.shopper.provider.ShopperProvider;
public class RecordActivity extends Activity implements LoaderManager.LoaderCallbacks<Cursor> {
private SimpleCursorAdapter sAdapter;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_record);
getLoaderManager().initLoader(0, null, this);
sAdapter = new SimpleCursorAdapter(
this,
android.R.layout.simple_spinner_item,
null,
new String[] {ShopperProvider.TAG_COLUMN_TAG},
new int[] {R.id.spinner1},
0);
sAdapter.setDropDownViewResource(android.R.layout.simple_spinner_item);
Spinner v = (Spinner) findViewById(R.id.spinner1);
v.setAdapter(sAdapter);
}
public Loader<Cursor> onCreateLoader(int arg0, Bundle arg1) {
CursorLoader cursorLoader = new CursorLoader(
this,
ShopperProvider.CONTENT_URI_TAGS,
ShopperProvider.TAG_COLUMNS,
null,
null,
null);
return cursorLoader;
}
public void onLoadFinished(Loader<Cursor> arg0, Cursor arg1) {
sAdapter.swapCursor(arg1);
}
public void onLoaderReset(Loader<Cursor> arg0) {
sAdapter.swapCursor(null);
}
}
而且我的佈局XML:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<Spinner
android:id="@+id/spinner1"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
從我ShopperProvider類,提取,
public static final Uri CONTENT_URI_TAGS = Uri.parse("content://com.supreme2u.shopper.provider/tableTag");
public static final String TAG_COLUMN_ID = "_id";
public static final String TAG_COLUMN_TAG = "tagName";
public static final String[] TAG_COLUMNS = {"_id","tagName"};
了... ...(僅每次發佈後的問題,然後才發現出了愚蠢的錯誤)......這個sAdapter應綁定到的觀點,不是R.id.spinner1,而是android.R.id.text1。 – user1672819