我有一个ListView,其中填充了数据库中美国州的名称。要转换到新屏幕,我想在该ListView中选择一个状态,然后点击一个按钮,该按钮将转换为该州的城市屏幕。
我想我知道如何填充ListView,但我不知道内部按钮的工作方式应该是什么样子。另外,我不知道如何通过过渡使用状态信息来使用它来列出城市。
此代码是否与此有关?
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) {
blah.setCurrentListID(arg3);
让我知道。感谢。
答案 0 :(得分:0)
首先,假设您使用的扩展ArrayAdapter的适配器类具有状态,例如:
public class StatesItemAdapter extends ArrayAdapter<UsState>
那么你有一个像ArrayList这样的List作为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);
}
然后在Cities活动中,在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
.......