Во-первых, при условии, что вы используете класс адаптера, который расширяет 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
.......