2013-11-12 1 views
0
 public class MyFragment extends Fragment { 
int mCurrentPage; 
Context c; 
GridView mListView; 
String id, cat; 
String strUrl; 
TextView tvtitle; 
TextView tv_id, tv_rating, tv_url; 
public static String img_url, img_rating, img_id, img_name; 
private ImageLoader imageLoader; 
private DisplayImageOptions options; 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    Bundle data = getArguments(); 
    mCurrentPage = data.getInt("current_page", 0); 
    imageLoader=ImageLoader.getInstance(); 

    options = new DisplayImageOptions.Builder() 
    .showImageOnLoading(R.drawable.empty_photo) 
    .showImageForEmptyUri(R.drawable.empty_photo) 
    .showImageOnFail(R.drawable.empty_photo) 
    .cacheInMemory(true) 
    .cacheOnDisc(true) 
    .displayer(new RoundedBitmapDisplayer(20)) 
    .build(); 
} 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 
    View v = null; 
    DownloadTask downloadTask = new DownloadTask(); 
    v = inflater.inflate(R.layout.starters, container, false); 
    tv_id = (TextView) v.findViewById(R.id.tv_starter_hide_id); 
    tv_rating = (TextView) v.findViewById(R.id.tv_starter_hide_ratinf); 
    tv_url = (TextView) v.findViewById(R.id.tv_starter_hide_url); 
    cat = Category.Main_Cat; 
    Log.i("Logcat Cat1", cat); 
    switch (mCurrentPage) { 
    case 1: 
     Log.v("MyFragment Heap", "Max Mem in MB:" 
       + (Runtime.getRuntime().maxMemory()/1024/1024)); 
     // strUrl = 
     // "http://vaibhavtech.com/work/android/get_json.php?cat="+cat+"&subcat=1"; 
     strUrl = " http://vaibhavtech.com/work/android/movie_list.php?category=BollyWood%20&sub_category=top"; 
     downloadTask.execute(strUrl); 
     mListView = (GridView) v.findViewById(R.id.lv_countries); 
     mListView.setOnItemClickListener(new OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> arg0, View arg1, 
        int arg2, long arg3) { 
       // TODO Auto-generated method stub 
       Intent i = new Intent(getActivity().getBaseContext(), 
         Starter_info.class); 
       img_id = ((TextView) arg1 
         .findViewById(R.id.tv_starter_hide_id)).getText() 
         .toString(); 
       img_rating = ((TextView) arg1 
         .findViewById(R.id.tv_starter_hide_ratinf)) 
         .getText().toString(); 
       img_url = ((TextView) arg1 
         .findViewById(R.id.tv_starter_hide_url)).getText() 
         .toString(); 
       img_name = ((TextView) arg1 
         .findViewById(R.id.tv_starter_hide_imagename)) 
         .getText().toString(); 
       startActivity(i); 
      } 
     }); 
     break; 
    case 2: 
     // strUrl = 
     // "http://vaibhavtech.com/work/android/get_json.php?cat="+cat+"&subcat=1"; 
     strUrl = " http://vaibhavtech.com/work/android/movie_list.php?category=BollyWood%20&sub_category=top"; 
     downloadTask.execute(strUrl); 
     Log.v("Splash Heap", "Max Mem in MB:" 
       + (Runtime.getRuntime().maxMemory()/1024/1024)); 
     mListView = (GridView) v.findViewById(R.id.lv_countries); 
     mListView.setOnItemClickListener(new OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> arg0, View arg1, 
        int arg2, long arg3) { 
       // TODO Auto-generated method stub 
       Intent i = new Intent(getActivity().getBaseContext(), 
         Starter_info.class); 
       img_id = ((TextView) arg1 
         .findViewById(R.id.tv_starter_hide_id)).getText() 
         .toString(); 
       img_rating = ((TextView) arg1 
         .findViewById(R.id.tv_starter_hide_ratinf)) 
         .getText().toString(); 
       img_url = ((TextView) arg1 
         .findViewById(R.id.tv_starter_hide_url)).getText() 
         .toString(); 
       img_name = ((TextView) arg1 
         .findViewById(R.id.tv_starter_hide_imagename)) 
         .getText().toString(); 
       startActivity(i); 
      } 
     }); 
     break; 
    default: 
     Log.i("Cat IS", Category.Main_Cat); 
     // strUrl = 
     // "http://vaibhavtech.com/work/android/get_json.php?cat="+cat+"&subcat=1"; 
     strUrl = " http://vaibhavtech.com/work/android/movie_list.php?category=BollyWood%20&sub_category=top"; 
     downloadTask.execute(strUrl); 
     Log.v("Splash Heap", "Max Mem in MB:" 
       + (Runtime.getRuntime().maxMemory()/1024/1024)); 
     mListView = (GridView) v.findViewById(R.id.lv_countries); 
     mListView.setOnItemClickListener(new OnItemClickListener() { 

      @Override 
      public void onItemClick(AdapterView<?> arg0, View arg1, 
        int arg2, long arg3) { 
       // TODO Auto-generated method stub 
       Intent i = new Intent(getActivity().getBaseContext(), 
         Starter_info.class); 
       img_id = ((TextView) arg1 
         .findViewById(R.id.tv_starter_hide_id)).getText() 
         .toString(); 
       img_rating = ((TextView) arg1 
         .findViewById(R.id.tv_starter_hide_ratinf)) 
         .getText().toString(); 
       img_url = ((TextView) arg1 
         .findViewById(R.id.tv_starter_hide_url)).getText() 
         .toString(); 
       img_name = ((TextView) arg1 
         .findViewById(R.id.tv_starter_hide_imagename)) 
         .getText().toString(); 
       startActivity(i); 

      } 
     }); 
     break; 
    } 
    return v; 
} 

private String downloadUrl(String strUrl) throws IOException { 
    String data = ""; 
    InputStream iStream = null; 
    try { 
     URL url = new URL(strUrl); 
     // Creating an http connection to communicate with url 
     HttpURLConnection urlConnection = (HttpURLConnection) url 
       .openConnection(); 
     // Connecting to url 
     urlConnection.connect(); 
     // Reading data from url 
     iStream = urlConnection.getInputStream(); 
     BufferedReader br = new BufferedReader(new InputStreamReader(
       iStream)); 
     StringBuffer sb = new StringBuffer(); 
     String line = ""; 
     while ((line = br.readLine()) != null) { 
      sb.append(line); 
     } 
     data = sb.toString(); 
     br.close(); 

    } catch (Exception e) { 
     Log.d("Exception while downloading url", e.toString()); 
    } finally { 
     iStream.close(); 
    } 

    return data; 
} 

private class DownloadTask extends AsyncTask<String, Integer, String> { 
    String data = null; 

    @Override 
    protected String doInBackground(String... url) { 
     try { 
      data = downloadUrl(url[0]); 

     } catch (Exception e) { 
      Log.d("Background Task", e.toString()); 
     } 
     return data; 
    } 

    @Override 
    protected void onPostExecute(String result) { 
     ListViewLoaderTask listViewLoaderTask = new ListViewLoaderTask(); 
     listViewLoaderTask.execute(result); 
    } 

} 

private class ListViewLoaderTask extends 
     AsyncTask<String, Void, List<HashMap<String, Object>>> { 
    JSONObject jObject; 
    @Override 
    protected List<HashMap<String, Object>> doInBackground(String... strJson) { 
     try { 
      jObject = new JSONObject(strJson[0]); 
      StarterParser countryJsonParser = new StarterParser(); 
      countryJsonParser.parse(jObject); 
     } catch (Exception e) { 
      Log.d("JSON Exception1", e.toString()); 
     } 
     StarterParser countryJsonParser = new StarterParser(); 
     List<HashMap<String, Object>> countries=null; 
     try { 
      // Getting the parsed data as a List construct 
      countries = countryJsonParser.parse(jObject); 
     } catch (Exception e) { 
      Log.d("Exception", e.toString()); 
     } 
     return countries; 
    } 

    @Override 
    protected void onPostExecute(List<HashMap<String, Object>> countries) { 
     mListView.setAdapter(new WallPaperAdapter(countries)); 
    } 
} 
public class WallPaperAdapter extends BaseAdapter { 

    private LayoutInflater mInflater = null; 
    private List<HashMap<String, Object>> countries = null; 
    public WallPaperAdapter(List<HashMap<String, Object>> countries) { 
     mInflater = LayoutInflater.from(getActivity()); 
     this.countries=countries; 
    } 

    public int getCount() { 
     return countries.size(); 
    } 

    public Object getItem(int position) { 
     return position; 
    } 

    public long getItemId(int position) { 
     return position; 
    } 

    public View getView(int position, View convertView, ViewGroup parent) { 

     ViewHolder holder; 
     if (convertView == null) { 
      convertView = mInflater.inflate(R.layout.lv_layout, 
        null); 
      holder = new ViewHolder(); 

      holder.txtId = (TextView) convertView 
        .findViewById(R.id.tv_starter_hide_id); 
      holder.txtDuration = (TextView) convertView 
        .findViewById(R.id.tv_starter_hide_ratinf); 
      holder.txtTitle= (TextView) convertView 
        .findViewById(R.id.tv_starter_hide_imagename); 
      holder.txtYear = (TextView) convertView 
        .findViewById(R.id.tv_starter_hide_url); 
      holder.imgPoster= (ImageView) convertView 
        .findViewById(R.id.iv_flag); 
      convertView.setTag(holder); 

     } else { 
      holder = (ViewHolder) convertView.getTag(); 
     } 
     try { 
      holder.txtId.setText(countries.get(position) 
          .get("id").toString()); 
      holder.txtDuration.setText(countries.get(position) 
        .get("duration").toString()); 
      holder.txtTitle.setText(countries.get(position) 
        .get("title").toString()); 
      holder.txtYear.setText(countries.get(position) 
        .get("year").toString()); 
      Log.v("Image Loader URL",countries.get(position) 
        .get("flag_path").toString()); 
      imageLoader.displayImage(countries.get(position) 
          .get("flag_path").toString(),holder.imgPoster,options); 

     } catch (Exception e) { 
     } 
     return convertView; 
    } 

    class ViewHolder { 

     public TextView txtId; 
     public TextView txtDuration; 
     public TextView txtTitle; 
     public TextView txtYear; 
     public ImageView imgPoster; 

    } 
} 

    } 

Я использую gridview, в котором я хочу загрузчика, который показывает процесс разметки до тех пор, пока изображение не загрузится в мое gridview.my изображение sare, исходящее из json .., что я делаю для этого .., пожалуйста, Предлагаем для этого, спасибо.Как использовать загрузчик в классе фрагментов, в котором данные поступают из json?

+0

Поместите индикатор над изображением и в классе адаптера, если u использует imageloader, существует один загрузчик для загрузки изображений. поэтому в то время как onLoadingStarted делает изображение невидимым и индикатор выполнения видимым, а завершение onLoading делает видимым изображение и индикатор прогресса невидимым. –

ответ

0

Добавьте этот код в AsyncTask:

protected void onPreExecute() { 
     // Showing progress dialog before sending http request 
     ProgressDialog pDialog = new ProgressDialog(your_activity.this); 
     pDialog.setMessage("Please wait.."); 
     pDialog.setIndeterminate(true); 
     pDialog.setCancelable(false); 
     pDialog.show(); 
    } 

И пост выполнить:

protected void onPostExecute(Void unused) { 
      // closing progress dialog 
      pDialog.dismiss(); 
     } 

Это может помочь вам ....

+0

thnks .., но я хочу загрузчик, который щебетает до того, когда изображение загружается ..... –

+0

@satishkumar .., как я могу решить эту ошибку .... –

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