2012-03-25 101 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