Существуют различные способы, с помощью которых вы можете подойти к этому, и, поскольку у меня есть только вышеперечисленные детали, это предложение может или не может быть оптимальным решением, но здесь идет речь:
Способ, которым явидите, у нас есть следующие задачи для решения
- Вы хотите сделать HTTP-вызов и затем обновить пользовательский интерфейс, будучи вкладкой 1
- Вы хотите запросить экземпляр SQLite и отобразитьданные в пользовательском интерфейсе, являющиеся вкладкой 2
- Каждый раз, когда поиск вызывается на вкладке 1, по завершении он должен обновить вкладку 2
Позвольте мне прокомментировать каждую из 3 задач, которые вам нужнысделать
Вы хотите сделать HTTP-вызов и затем обновить пользовательский интерфейс, используя вкладку 1
Поскольку вы собираетесь делать внешние вызовы здесь, это можетНе торопитесь, лучше всего использовать AsyncTask.Если вы попытаетесь выполнить HTTP-вызов в главном потоке приложения, и это займет слишком много времени, ваше приложение будет аварийно завершено, поэтому используйте AsyncTask для выполнения вызова и обновите пользовательский интерфейс при необходимости.
Вы можете вызвать AsyncTask в onResume()
вашего упражнения с вкладкой 1 или подключить его к кнопке, в зависимости от того, что вам больше подходит.
Это может помочь вам:
private class CallHTTP extends AsyncTask<String, Integer, Bitmap>
{
@Override
protected void onPreExecute()
{
// initialise any UI stuff here
}
@Override
protected Bitmap doInBackground(String... strings)
{
//actually make the HTTP call here
}
protected void onPostExecute(final Bitmap result)
{
//when you're done, update the UI here or fire off another activity
}
}
В onPostExecute()
вы можете создать намерение для вашей второй вкладки, например что-то вроде
Intent i = new Intent(this, MyActivity.class);
startActivity(i);
Вы хотите запросить экземпляр SQLite и отобразить данные в пользовательском интерфейсе,будучи вкладкой 2
Примерно так же, как описано выше, вы захотите, чтобы AsyncTask выполнял тяжелую (в относительном выражении) работу по запросу базы данных, использовал вышеуказанную стратегию и обновлял пользовательский интерфейскогда вы закончите. Это может помочь вам начать работу на стороне SQLite .
Каждый раз, когда поиск вызывается на вкладке 1, по завершении он должен обновить вкладку 2
Если вы следуете совету, который я дал выше, вы должны неявно получать обновления на вкладке 2 каждый раз, когда поиск по вкладке 1 завершается, так как ее onPostExecute()
запустит действие, заставив его нажать onResume()
, где вы можете сбросить содержимоеview.
Я надеюсь, что он предоставил вам достаточно информации, чтобы вы начали
Cheers