2015-05-25 60 views
1

我正在使用jdbc 1.2.8连接到MS SQL数据库,在那里我有一个tblContacts包含几个联系人姓名。如何使android微调选择tblContacts

我现在要做的是让我的微调{select * from tblContacts}并像普通微调器一样填充列表。

我被困在这里,我不太确定此刻该怎么办,帮助表示感谢,谢谢。

在这一点上,我有这个。


Spinner staticSpinner = (Spinner) findViewById(R.id.spinner); 


    ArrayAdapter<CharSequence> staticAdapter = ArrayAdapter 
      .createFromResource(this, R.array.brew_array, 
        android.R.layout.simple_spinner_item); 


      .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 


    staticSpinner.setAdapter(staticAdapter); 

    Spinner dynamicSpinner = (Spinner) findViewById(R.id.spinner); 

    String[] items = new String[] { "Android", "AndroidOld", "AndroidNew" }; 

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, 
      android.R.layout.simple_spinner_item, items); 

    dynamicSpinner.setAdapter(adapter); 

    dynamicSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
     @Override 
     public void onItemSelected(AdapterView<?> parent, View view, 
            int position, long id) { 
      Log.v("item", (String) parent.getItemAtPosition(position)); 
     } 

     @Override 
     public void onNothingSelected(AdapterView<?> parent) { 
      // TODO Auto-generated method stub 
     } 
    }); 
+0

首先,您需要将所有联系人都以一个简单的字符串逐个获取,然后传递给列表然后在ArrayAdapter中添加 Amitsharma

+0

tblContacts是我的SQL服务器中的一个表。 – Nosferatu

+0

在此处添加您的数据库表代码 – Amitsharma

回答

1

为了从你需要使用类似下面的内容数据库中的数据:

private void loadSpinnerData() { 
     DatabaseHandler db = new DatabaseHandler(getApplicationContext()); 

     List<String> lables = db.getAllLabels(); 

     ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, 
       android.R.layout.simple_spinner_item, lables); 
       .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 

     // attaching data adapter to spinner 
     spinner.setAdapter(dataAdapter); 
    } 

    @Override 
    public void onItemSelected(AdapterView<?> parent, View view, int position, 
      long id) { 
     // On selecting a spinner item 
     String label = parent.getItemAtPosition(position).toString(); 

     // Showing selected spinner item 
     Toast.makeText(parent.getContext(), "You selected: " + label, 
       Toast.LENGTH_LONG).show(); 

    } 

    @Override 
    public void onNothingSelected(AdapterView<?> arg0) { 
     // TODO Auto-generated method stub 

    } 
} 

在一个单独的类,你需要创建一个使用什么数据库处理程序代码与此类似:

public class DatabaseHandler extends SQLiteOpenHelper { 

    private static final int DATABASE_VERSION = 1; 

    private static final String DATABASE_NAME = "dbname"; 
    private static final String TABLE_LABELS = "table_name"; 
    private static final String KEY_ID = "id"; 
    private static final String KEY_NAME = "column_name"; 

    public DatabaseHandler(Context context) { 
     super(context, DATABASE_NAME, null, DATABASE_VERSION); 
    } 

    @Override 
    public void onCreate(SQLiteDatabase db) { 
     String CREATE_CATEGORIES_TABLE = "CREATE TABLE " + TABLE_LABELS + "(" 
       + KEY_ID + " INTEGER PRIMARY KEY," + KEY_NAME + " TEXT)"; 
     db.execSQL(CREATE_CATEGORIES_TABLE); 
    } 

    @Override 
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
     db.execSQL("DROP TABLE IF EXISTS " + TABLE_LABELS); 

     onCreate(db); 
    } 

    public List<String> getAllLabels(){ 
     List<String> labels = new ArrayList<String>(); 

     // Select All Query 
     String selectQuery = "SELECT * FROM " + TABLE_LABELS; 

     SQLiteDatabase db = this.getReadableDatabase(); 
     Cursor cursor = db.rawQuery(selectQuery, null); 

     cursor.close(); 
     db.close(); 

     // returning lables 
     return labels; 
    } 
} 
+1

谢谢@Michele La Ferla。 – Nosferatu

+1

如果您想要更好的解释,我会推荐本教程:http://www.androidhive.info/2012/06/android-populating-spinner-data-from-sqlite-database/ –