2015-08-03 2 views
0

Я новичок в разработке Android, и мне нужна помощь.Как мне обновить вид в приложении для Android?

У меня есть приложение для Android, в котором есть текстовый редактор и кнопка для отправки текста. Когда нажимается кнопка, я должен выполнить некоторые запросы на веб-сервер и показать загруженное изображение и текст под текстовым редактором. Пока эта операция выполняется, я хочу показать индикатор выполнения или что-то подобное.

Я думаю, что я должен использовать AsyncTask для выполнения операций веб-сервера, но я не ясно, какое решение использовать, чтобы обновить представление с данными, полученными:

  • Используйте ViewStud
  • использовать фрагменты
  • Используйте скрытый вид, обновите его и покажите.

Может ли кто-нибудь помочь мне в том, как это может продолжаться?

Спасибо и извините за мой английский.

+0

Что вы сделали до сих пор, пожалуйста, вставьте свой код? –

ответ

0

Все ваши требования могут быть достигнуты с помощью AsyncTask. Пожалуйста, предпочитайте AsyncTask document для получения дополнительной информации.

Чтобы обновить представление с помощью полученных данных, вы можете использовать метод onPostExecute. Что-то вдоль этой линии:

@Override 
    protected void onPostExecute(ArrayList<Trailer> trailer) { 
     Log.d(TAG,"ONPOSTEXECUTED"); 
     trailerList.clear(); 
     for (Trailer t:trailer) { 
     trailerList.add(t); 
     } 
     mMovie.setTrailer(trailerList); 
     updateTrailerListView(); 
    } 

Где:

private void updateTrailerListView() { 
    LinearLayout trailerlayout=(LinearLayout)getView().findViewById(R.id.movie_detail_trailer); 
    // empty the list view of trailers. This is used to prevent duplicating listview 
    trailerlayout.removeAllViews(); 
    if (!trailerList.isEmpty()) { 
     for (int i = 0; i < trailerList.size(); i++) { 
      // Inflate the trailer layout and add the textview to the linear layout 
      View v=getActivity().getLayoutInflater().inflate(R.layout.trailer_layout,null); 
      TextView textView = (TextView)v.findViewById(R.id.trailer_layout_textView); 
      final Trailer t = trailerList.get(i); 
      // Set the name of the trailer 
      textView.setText(t.getName()); 

      // Set onclick listener to the View to open the trailer in Youtube or other native app 
      v.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        Intent i = new Intent(Intent.ACTION_VIEW, 
          // URI of the youtube link 
          Uri.parse("http://youtube.com/watch?v=" + t.getKey())); 
        startActivity(i); 
       } 
      }); 
      trailerlayout.addView(v); 
     } 
     Log.d(TAG,"update trailer List View"); 
    } 
} 

Это один из многих примеров использования onPostExecute обновить вид. Вы можете написать собственный метод updateView(), который зависит от ваших потребностей.

Что касается обновления прогресса, выполните поиск по методуProgressUpdate и как реализовать их в официальном документе.

Смежные вопросы