2012-03-25 141 views
1

我有一個ListView填充數據庫中美國國家的名稱。要過渡到新的屏幕,我想在該ListView中選擇一個狀態,然後點擊一個按鈕,該按鈕轉換到該狀態下的城市屏幕。Android在ListView中選擇,並按下按鈕來選擇

我想我知道如何填充ListView,但我不知道內部按鈕的工作方式應該是什麼樣子。另外,我不知道如何使用狀態信息通過轉換來使用它來列出城市。

此代碼與此有關嗎?

public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) { 
      blah.setCurrentListID(arg3); 

讓我知道。謝謝。

回答

0

首先,假設你使用擴展ArrayAdapter與美國,像一個適配器類:

public class StatesItemAdapter extends ArrayAdapter<UsState> 

然後你有一個像ArrayList的列表作爲一個ArrayAdapter正確的數據源?然後,

@Override 
public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) { 

     UsState state = statesList.get(position); // on ArrayList 
     // or try statesList.get(listView.getSelectedItemPosition()); 


     Intent citiesIntent = new Intent(getApplicationContext(), CitiesActivity.class); 
     citiesIntent.putExtra("state_name", state.getName()); // Name string originating from database record 
     startActivity(citiesIntent); 
} 

然後在城市活動,在的onCreate你必須得到國家的名字,並把它作爲你的數據庫查詢條件來獲得城市結果的光標:

public void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 

      Intent intent = getIntent(); 
      Bundle bundleExtras = intent.getExtras(); 

      String selectedState = bundleExtras.getString("state_name"); 

      // Do database query on cities relating to state 
      ....... 
+0

我得到的錯誤多個標記在該行 \t - 令牌「(」語法錯誤;預計 \t - 虛空是一個無效的類型變量 \t onItemClick \t - 語法令牌錯誤「」;預期 \t - 令牌上的語法錯誤「,」,;預期 \t - 令牌上的語法錯誤「,」,;預期 \t - 令牌上的語法錯誤「)」,;預計在代碼中:_italic_public void onItemClick(AdapterView arg0,View v,int position,long id){_ italic_ – user963070 2012-03-25 20:00:28

+0

我不明白的必要性:public class StatesItemAdapter extends ArrayAdapter user963070 2012-03-25 20:03:17