2015-09-30 28 views
2

我需要任何人的幫助..請尊重我的問題..我使用Glide在android studio中顯示圖像,但我如何實現Glide到我的列表視圖?

好吧,我的問題是,我想用滑翔我的列表視圖,但我不知道該怎麼..

請我的建設工程listviewadapter使Glide將工作給我任何其他可能的解決方案,以實現我的目標..

我的目標是我只是想顯示圖像和文字在ListView或GridView與Glide和JSON,JSON結果是從我的PHP腳本..

這裏是我的代碼..

CategoryFragment.java

package com.example.administrator.mosbeau; 

import android.app.Activity; 
import android.app.Fragment; 
import android.app.FragmentManager; 
import android.app.ProgressDialog; 
import android.os.AsyncTask; 
import android.os.Bundle; 
import android.support.annotation.Nullable; 
import android.util.Log; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.EditText; 
import android.widget.ExpandableListView; 
import android.widget.ListView; 

import org.apache.http.HttpEntity; 
import org.apache.http.HttpResponse; 
import org.apache.http.NameValuePair; 
import org.apache.http.client.HttpClient; 
import org.apache.http.client.entity.UrlEncodedFormEntity; 
import org.apache.http.client.methods.HttpPost; 
import org.apache.http.impl.client.DefaultHttpClient; 
import org.apache.http.message.BasicNameValuePair; 
import org.apache.http.params.BasicHttpParams; 
import org.apache.http.params.HttpConnectionParams; 
import org.apache.http.params.HttpParams; 
import org.apache.http.util.EntityUtils; 
import org.json.JSONArray; 
import org.json.JSONException; 
import org.json.JSONObject; 

import java.io.BufferedReader; 
import java.io.InputStream; 
import java.io.InputStreamReader; 
import java.util.ArrayList; 
import java.util.HashMap; 
import java.util.List; 

/** 
* Created by Administrator on 9/18/2015. 
*/ 
public class CategoryFragment extends Fragment { 

    public static CategoryFragment newInstance(String id,String name) { 
     CategoryFragment fragment = new CategoryFragment(); 

     Bundle bundle = new Bundle(); 
     bundle.putString("id", id); 
     bundle.putString("name", name); 
     fragment.setArguments(bundle); 

     return fragment; 
    } 

    public CategoryFragment() { 
    } 

    EditText tpid, tpname; 
    String cid; 
    String cname; 

    String myJSON; 
    JSONObject jsonobject; 
    JSONArray jsonarray; 
    ListView productlistview; 
    ListViewAdapter adapter; 
    ProgressDialog mProgressDialog; 
    ArrayList<HashMap<String, String>> arraylist; 
    public static String products_id = "products_id"; 
    public static String products_name = "products_name"; 
    public static String products_price = "products_price"; 
    public static String products_image = "products_image"; 

    Boolean InternetAvailable = false; 
    Seocnd detectconnection; 

    @Nullable 
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){ 
     View rootView = inflater.inflate(R.layout.categorylayout, container, false); 

     getActivity().invalidateOptionsMenu(); 

     tpid = (EditText) rootView.findViewById(R.id.tpid); 
     tpname = (EditText) rootView.findViewById(R.id.tpname); 

     if(getArguments() != null) { 
      String catid = getArguments().getString("id"); 
      String catname = getArguments().getString("name"); 

      tpid.setText(catid); 
      tpname.setText(catname); 
      cid = catid; 
      cname = catname; 
     } 

     productlistview = (ListView) rootView.findViewById(R.id.productlistview); 

     //new DownloadJSON().execute(); 

     detectconnection = new Seocnd(getActivity()); 
     InternetAvailable = detectconnection.InternetConnecting(); 
     if (InternetAvailable) { 
      getProduct(); 
     } else { 
      NointernetFragment fragment = new NointernetFragment(); 
      FragmentManager fragmentManager = getFragmentManager(); 
      fragmentManager.beginTransaction() 
        .replace(R.id.container, fragment) 
        .commit(); 
     } 

     return rootView; 
    } 

    public void getProduct(){ 
     class DownloadJSON extends AsyncTask<String, Void, String> { 

      @Override 
      protected void onPreExecute() { 
       super.onPreExecute(); 
       // Create a progressdialog 
       mProgressDialog = new ProgressDialog(getActivity()); 
       // Set progressdialog title 
       mProgressDialog.setTitle(cname); 
       // Set progressdialog message 
       mProgressDialog.setMessage("Loading..."); 
       mProgressDialog.setIndeterminate(false); 
       // Show progressdialog 
       mProgressDialog.show(); 
      } 

      @Override 
      protected String doInBackground(String... params) { 
       DefaultHttpClient httpclient = new DefaultHttpClient(new BasicHttpParams()); 
       HttpPost httppost = new HttpPost("http://joehamirbalabadan.com/android/android/products.php"); 

       // Depends on your web service 
       httppost.setHeader("Content-type", "application/json"); 

       InputStream inputStream = null; 
       String result = null; 
       try { 
        HttpResponse response = httpclient.execute(httppost); 
        HttpEntity entity = response.getEntity(); 

        inputStream = entity.getContent(); 
        // json is UTF-8 by default 
        BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"), 8); 
        StringBuilder sb = new StringBuilder(); 

        String line = null; 
        while ((line = reader.readLine()) != null) 
        { 
         sb.append(line + "\n"); 
        } 
        result = sb.toString(); 
       } catch (Exception e) { 
        // Oops 
       } 
       finally { 
        try{if(inputStream != null)inputStream.close();}catch(Exception squish){} 
       } 
       return result; 
      } 

      @Override 
      protected void onPostExecute(String result){ 
       myJSON=result; 

       try { 
        // Locate the array name in JSON 
        JSONObject jsonObj = new JSONObject(myJSON); 
        jsonarray = jsonObj.getJSONArray("products"); 

        arraylist = new ArrayList<HashMap<String, String>>(); 

        for (int i = 0; i < jsonarray.length(); i++) { 
         HashMap<String, String> map = new HashMap<String, String>(); 
         JSONObject p = jsonarray.getJSONObject(i); 
         // Retrive JSON Objects 
         map.put("products_id", p.getString("products_id")); 
         map.put("products_name", p.getString("products_name")); 
         map.put("products_price", p.getString("products_price")); 
         map.put("products_image", p.getString("products_image")); 
         // Set the JSON Objects into the array 
         arraylist.add(map); 
        } 
       } catch (JSONException e) { 
        Log.e("Error", e.getMessage()); 
        e.printStackTrace(); 
       } 

       adapter = new ListViewAdapter(getActivity(), arraylist); 
       // Set the adapter to the ListView 
       productlistview.setAdapter(adapter); 
       // Close the progressdialog 
       mProgressDialog.dismiss(); 
      } 
     } 
     DownloadJSON g = new DownloadJSON(); 
     g.execute(); 
    } 

    @Override 
    public void onAttach(Activity activity) { 
     super.onAttach(activity); 
     ((MainActivity) activity).onSectionAttached(2); 
    } 
} 

ListViewAdapter.java

package com.example.administrator.mosbeau; 

/** 
* Created by Administrator on 9/28/2015. 
*/ 

import android.content.Context; 
import android.content.Intent; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.view.ViewGroup; 
import android.widget.BaseAdapter; 
import android.widget.ImageView; 
import android.widget.TextView; 

import java.util.ArrayList; 
import java.util.HashMap; 

import com.bumptech.glide.Glide; 

public class ListViewAdapter extends BaseAdapter { 

    // Declare Variables 
    Context context; 
    LayoutInflater inflater; 
    ArrayList<HashMap<String, String>> data; 
    ImageLoader imageLoader; 
    HashMap<String, String> resultp = new HashMap<String, String>(); 

    public ListViewAdapter(Context context, 
          ArrayList<HashMap<String, String>> arraylist) { 
     this.context = context; 
     data = arraylist; 
     imageLoader = new ImageLoader(context); 
    } 

    @Override 
    public int getCount() { 
     return data.size(); 
    } 

    @Override 
    public Object getItem(int position) { 
     return null; 
    } 

    @Override 
    public long getItemId(int position) { 
     return 0; 
    } 

    public View getView(final int position, View convertView, ViewGroup parent) { 
     // Declare Variables 
     TextView products_id; 
     TextView products_name; 
     TextView products_price; 
     ImageView products_image; 

     inflater = (LayoutInflater) context 
       .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

     View itemView = inflater.inflate(R.layout.product_listview_item, parent, false); 
     // Get the position 
     resultp = data.get(position); 

     // Locate the TextViews in product_listview_item.xml 
     products_id = (TextView) itemView.findViewById(R.id.products_id); 
     products_name = (TextView) itemView.findViewById(R.id.products_name); 
     products_price = (TextView) itemView.findViewById(R.id.products_price); 

     // Locate the ImageView in product_listview_item.xml 
     products_image = (ImageView) itemView.findViewById(R.id.products_image); 

     // Capture position and set results to the TextViews 
     products_id.setText(resultp.get(CategoryFragment.products_id)); 
     products_name.setText(resultp.get(CategoryFragment.products_name)); 
     products_price.setText(resultp.get(CategoryFragment.products_price)); 
     // Capture position and set results to the ImageView 
     // Passes flag images URL into ImageLoader.class 
     imageLoader.DisplayImage(resultp.get(CategoryFragment.products_image), products_image); 
     // Capture ListView item click 
     itemView.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View arg0) { 
       // Get the position 
       resultp = data.get(position); 
       Intent intent = new Intent(context, SingleItemView.class); 
       // Pass all data rank 
       intent.putExtra("products_id", resultp.get(CategoryFragment.products_id)); 
       // Pass all data country 
       intent.putExtra("products_name", resultp.get(CategoryFragment.products_name)); 
       // Pass all data population 
       intent.putExtra("products_price",resultp.get(CategoryFragment.products_price)); 
       // Pass all data flag 
       intent.putExtra("products_image", resultp.get(CategoryFragment.products_image)); 
       // Start SingleItemView Class 
       context.startActivity(intent); 

      } 
     }); 
     return itemView; 
    } 
} 

回答

0

只需使用:Glide.with(context) .load(resultp.get(CategoryFragment.products_image)) .into(products_image);

代替

imageLoader.DisplayImage(resultp.get(CategoryFragment.products_image), products_image);

ListViewAdapter.java

+0

我已經嘗試這樣做,但沒有圖像顯示..請幫助.. – Joe

+0

現在的工作..這個問題是在我的網址..感謝進來。 – Joe

相關問題