Android выберите в ListView и нажмите кнопку, чтобы выбрать - PullRequest
1 голос
/ 25 марта 2012

У меня есть ListView, заполненный названиями штатов США из базы данных. Чтобы перейти на новый экран, я хочу выбрать штат в этом ListView, а затем нажать кнопку, которая переходит на экран городов в этом состоянии.

Я думаю, что знаю, как заполнить ListView, но я не знаю, как должна выглядеть работа внутренних кнопок. Кроме того, я не знаю, как использовать для передачи информации о состоянии через переход, чтобы использовать ее для составления списка городов.

Этот код имеет какое-либо отношение к этому?

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

Дайте мне знать. Спасибо.

1 Ответ

0 голосов
/ 25 марта 2012

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