2016-04-10 56 views
0

我有表圖像數據庫,我有atribut id_image(INT),IMAGE_NAME(串)Android的顯示圖像的GridView從URL與畢加索

這是將被用於獲取IMAGE_NAME URL的Web服務= http://lomapod.azurewebsites.net/readBarang.php?id_penjual=1

這是我將如何調用IMAGEURL

的ImageUrl = http://lomapod.esy.es/assets/(image_name).jpg

gridItem.java

public class gridItem { 
    String imageUrl; 
    String barang; 
    public gridItem(String barang, String imageUrl) { 
     super(); 
     this.imageUrl = imageUrl; 
     this.barang = barang; 
    } 
    public String getImageUrl() { 
     return imageUrl; 
    } 
    public String getBarang() { 
     return barang; 
    } 
} 

CustomGridViewAdapter.Java

public class CustomGridViewAdapter extends ArrayAdapter<gridItem> { 
    Context context; 
    int layoutResourceId; 
    ArrayList<gridItem> data = new ArrayList<>(); 
    public CustomGridViewAdapter(Context context, int layoutResourceId, 
           ArrayList<gridItem> data) { 
     super(context, layoutResourceId, data); 
     this.layoutResourceId = layoutResourceId; 
     this.context = context; 
     this.data = data; 
    } 
    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     View row = convertView; 
     RecordHolder holder; 
     if (row == null) { 
      LayoutInflater inflater = ((Activity) context).getLayoutInflater(); 
      row = inflater.inflate(layoutResourceId, parent, false); 
      holder = new RecordHolder(); 
      holder.txtTitle = (TextView) row.findViewById(R.id.tvItem); 
      holder.imageItem = (ImageView) row.findViewById(R.id.imageView); 
      row.setTag(holder); 
     } else { 
      holder = (RecordHolder) row.getTag(); 
     } 
     gridItem item = data.get(position); 
     holder.txtTitle.setText(item.getBarang()); 
     Picasso.with(context). 
       load(item.getImageUrl()). 
       into(holder.imageItem); 
     return row; 
    } 
    static class RecordHolder { 
     TextView txtTitle; 
     ImageView imageItem; 
    } 
} 

MainActivity.Java

public class MainActivity extends ActionBarActivity { 
    JSONParser jParser= new JSONParser(); 
    ArrayList<HashMap<String, String>> nameList; 
    JSONArray names=null; 
    GridView data; 
    private static final String URL_TEST_BARANG= "http://lomapod.azurewebsites.net/readBarang.php?id_penjual=1"; 
    private static final String TAG_PESAN = "message"; 
    private static final String TAG_HASIL = "result"; 
    private static final String TAG_BARANG = "nama_barang"; 
    private static final String TAG_IMAGE= "image_name"; 
    ImageView imageview; 
    CustomGridViewAdapter mGridAdapter; 
    ArrayList<gridItem> mGridData; 
    public MainActivity() 
    {} 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     data=(GridView) findViewById(R.id.lvSeller); 
     nameList= new ArrayList<HashMap<String, String>>(); 
     imageview =(ImageView) findViewById(R.id.imageView); 
     mGridData=new ArrayList<>(); 
     mGridAdapter=new CustomGridViewAdapter(this,R.layout.grid_item,mGridData); 
     data.setAdapter(mGridAdapter); 
     new AmbilDataJson().execute(); 
    } 

    public class AmbilDataJson extends AsyncTask<String,String,String> { 

     int sukses=0; 

     public AmbilDataJson() {} 

     @Override 
     protected void onPreExecute() { 
      super.onPreExecute(); 
     } 

     @Override 
     protected String doInBackground(String... args) { 

      List<NameValuePair> params = new ArrayList<NameValuePair>(); 

      try 
      { 
       JSONObject json = jParser.makeHttpRequest(URL_TEST_BARANG, "GET", params); 

       if(json != null) 
       { 
        sukses = json.getInt(TAG_PESAN); 
        if(sukses == 0) 
        { 
         nameList = new ArrayList<HashMap<String,String>>(); 
         Log.d("Semua Nama: ", json.toString()); 
         names = json.getJSONArray(TAG_HASIL); 

         for(int i = 0; i < names.length();i++) 
         { 
          JSONObject c = names.getJSONObject(i); 
          String barang = c.getString(TAG_BARANG); 
          String image = "lomapod.esy.es/assets/"+c.getString(TAG_IMAGE); 

          HashMap<String,String> map = new HashMap<String,String>(); 

          map.put(TAG_BARANG,barang); 
          map.put(TAG_IMAGE,image); 
          nameList.add(map); 
         } 
        } 
       } 
      }catch(JSONException e) 
      { 
       e.printStackTrace(); 
      } 

      return null; 
     } 

     @Override 
     protected void onPostExecute(String s) { 
      if(sukses == 0) 
      { 
       CustomGridViewAdapter adapter = new CustomGridViewAdapter(
         MainActivity.this,R.layout.grid_item,mGridData); 

       mGridAdapter.setGridData(mGridData); 
      } 
      else 
      { 
       Toast.makeText(MainActivity.this,"Failed",Toast.LENGTH_LONG); 
      } 
     } 
    } 
} 

我想在圖像中顯示的Android工作室的GridView,但我也不是什麼我應該做的MainActivity。

誰能告訴我怎麼樣?先進的感謝

回答

0

首先,您需要填寫您的列表,並將其傳遞給適配器。之後,您需要將適配器設置爲GridView。

+0

你能告訴我關於代碼的更多細節嗎? –

+0

我不會這樣做,而是我會爲你的主要活動寫一些評論,並編輯這個答案。 –

+0

好的,謝謝,它會幫助我很多 –