2012-09-03 22 views
0

我正在查詢我的數據庫來填充我的微調選擇(這工作正常),但我也想從選定的位置填充活動的其餘部分的一些TextViews。 這是我的類來處理活動:從spinner的選擇中查詢SQLite數據到TextView

public class Post_Player_Info extends Activity implements OnItemSelectedListener{ 

DBAdapter db = new DBAdapter(this); 
Spinner spinner; 
TextView SportType; 
Button Left, Right, Front, Back; 
DBAdapter Info = new DBAdapter(this); 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.postplayerinfo); 

    spinner = (Spinner) findViewById(R.id.spinner1); 
    SportType = (TextView) findViewById(R.id.tvSportType); 

    db.open(); 

    Cursor c = db.getNames(); 

    SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, android.R.layout.simple_spinner_item, 
     c, new String[] {DBAdapter.ROW_FIRSTNAME}, 
     new int[] {android.R.id.text1}); 

    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    spinner.setAdapter(adapter); 

    db.close(); 

} 

@Override 
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, 
     long arg3) { 
    // TODO Auto-generated method stub 

    int position = spinner.getSelectedItemPosition(); 
    switch (position) { 
    case 0: 
     Info.open(); 
     String data = Info.getData(); 
     SportType.setText(data); 
     Info.close(); 
    break; 

    } 

} 

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

} 

}

這裏就是我試圖讓我的dbhelper數據:

public String getData() { 
    // TODO Auto-generated method stub 
    String [] columns = new String [] {ROW_SPORT}; 
    Cursor c = db.query(DATABASE_TABLE1, columns, null, null, null, null, null); 
    String results = ""; 

    int sport = c.getColumnIndex(ROW_SPORT); 

    for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext()){ 
     results = results + c.getString(sport) + " "; 
    } 
    return results; 
} 

回答

2

嗯,我不知道什麼問題是......但這是我的猜測:

我在onCreate()中看不到這一行:

spinner.setOnItemSelectedListener(this); 

也請閱讀Java naming convention,這表明像SportText變量應該像sportText小寫字母開頭。


我注意到,你有兩個dbInfo,但他們做同樣的事情。您可以刪除其中的一個。

+0

spinner.setOnItemSelectedListener(this); 這條線解決了我的問題。我不知道該怎麼感謝你才足夠!我會研究命名問題。 –

+0

很高興能幫到你!請選擇此答案左上角的複選標記,將此問題標記爲已解決。 – Sam