Создание ListView в Android с использованием данных, полученных на сервере SQL - PullRequest
0 голосов
/ 19 июля 2011

Я получил данные из моего локального sql в действие ... теперь я хочу создать новое действие, называемое listView Activity, и я хочу отобразить listView, используя данные, которые я получил ранее.Каков наилучший способ передачи данных между действиями и создания адаптера для просмотра списка?

Ответы [ 2 ]

0 голосов
/ 19 июля 2011

Таким образом, использование Intent для отправки данных на следующую операцию - это хорошо, но, пожалуйста, не отправляйте все данные из вашей базы данных с помощью Intent.Лучший способ реализовать это - создать некоторый класс провайдера данных, который не будет содержать фактические данные, но сможет извлечь их, когда это необходимо*

Intent i; // init it
Bundle bundle = new Bundle();
bundle.putSerializable("dataProvider", new DataProvider());
i.putExtras(bundle);
startActivity(i);

И, наконец, в начале своей деятельности найдите провайдера данных - я не буду писать никакого кода, потому что считаю, что вы можете справиться с этим самостоятельно.Когда вы получите DataProvider, просто вызовите fetchData() метод для извлечения данных.Очень ВАЖНО для доступа к асинхронному БД, иначе ваша деятельность может вызвать ANR, поэтому лучший способ сделать это будет использовать AsyncTask .Я также сообщу вам о внедрении AsyncTask.

Если у вас возникли проблемы, не стесняйтесь спрашивать, и мы поможем вам.

0 голосов
/ 19 июля 2011

Создайте новое намерение и поместите данные, которые вы хотите.Вы можете поместить различные типы данных.

Intent i = new Intent(this, YourClass.class);
i.putExtra(name, value); <--- with this you send data to next activity
startActivity(i);

А как насчет адаптера, если у вас нет опыта со списками, используйте ArrayAdapter.Не забудьте использовать метод getView () с умом:)

Подробнее: Как вы получаете ресурсы в следующем упражнении?Ну что ж ... В onCreate (Bundle saveInstanceState) вы делаете это

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main2);
this.getParent().getIntent().get<DATA-TYPE-YOU-HAVE-SENT>("KEY-NAME");   //this can be anything you sent, like this.getParent().getIntent().getString("myString"); 


this.getParent().getIntent() <---- returns the calling intent, i.e the intent that called this activity...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...