0

SimpleCursorAdapterを使用して、Spinnerにデータベースのnameカラムを取り込みます。スピナーで選択されたアイテムのデータベースの詳細を表示

アダプタ:

spinnerAdapter = new SimpleCursorAdapter(
     this, 
     android.R.layout.simple_spinner_item, 
     null, 
     new String[] {SupplierEntry.COLUMN_SUPPLIER_NAME}, 
     new int[] {android.R.id.text1}, 
     0); 
spinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_item); 
mSuppliersSpinner.setAdapter(spinnerAdapter); 

getLoaderManager().initLoader(SUPPLIERS_LOADER, null, this); 

カーソルローダー:

@Override 
    public Loader<Cursor> onCreateLoader(int i, Bundle bundle) { 
     // Define a projection that specifies the columns from the table we care about. 
     String[] projection = { 
       SupplierEntry._ID, 
       SupplierEntry.COLUMN_SUPPLIER_NAME}; 

     // This loader will execute the ContentProvider's query method on a background thread 
     return new CursorLoader(this,  // Parent activity context 
       SupplierEntry.CONTENT_URI, // Provider content URI to query 
       projection,     // Columns to include in the resulting Cursor 
       null,      // No selection clause 
       null,      // No selection arguments 
       null);      // Default sort order 
    } 

どのように私は、スピナー(名前欄)で項目を選択すると、いくつかのtextviews内の他のすべての詳細を示すことができましたか?

答えて

1

まず、リスナーをスピナーに設定して、アイテムが選択されたときにコールバックを取得します。

mSuppliersSpinner.setOnItemSelectedListener(this); 

私の断片/アクティビティは、インタフェースを実装していますが、あなたにも括弧の間に1を書くことができますので、私はリスナーとして「これ」を提供します。あなたが選択したエントリを知って、IDに基づいて

@Override 
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) 
{ 
    //Start another cursorloader to get the details 
} 

、または位置: あなたは、このメソッドを実装することができます。この時点で、別のCursorLoaderを開始することができます(この特定のエントリの詳細のみを取得できるように選択します)。 onLoadFinishedでコールバックを取得すると、TextViewsに詳細を表示できます。

関連する問題