2014-12-22 2 views
-2

Mainactivity:Как упорядочить изображение на основе индекса в виде сетки?

 public class MainActivity extends Activity { 
    GridView grid; 
    RelativeLayout r1; 
    int maxrows, maxcol; 
    ArrayList<LayoutData> data = new ArrayList<LayoutData>(); 
    ArrayList<HashMap<String, String>> sheetdetails = new ArrayList<HashMap<String, String>>(); 

       @Override 

    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     grid=(GridView)findViewById(R.id.gridview); 

     new GetRoute().execute("http://sb2.reloadit.in/TravelServices.asmx/Getlayout"); 

     } 

    private  class GetRoute extends AsyncTask<String, Void, JSONObject> { 
      /*String mJourneyDate; 
      public GetData(String pJourneyDate) { 
       this.mJourneyDate = pJourneyDate; 
      }*/ProgressDialog pd = null; 
       @Override 
       protected void onPreExecute() { 
        super.onPreExecute(); 

        pd = ProgressDialog.show(MainActivity.this, "", "Loading...", true); 
       } 

       @Override 
       protected JSONObject doInBackground(String... params) { 
        String response; 

        try { 
         HttpClient httpclient = new DefaultHttpClient(); 
         HttpPost httppost = new HttpPost(params[0]); 
         List<NameValuePair> nameValuePair = new ArrayList<NameValuePair>(2); 
         nameValuePair.add(new BasicNameValuePair("RouteScheduleID","4798657")); 

         nameValuePair.add(new BasicNameValuePair("JourneyDate","2014-12-20")); 


         httppost.setEntity(new UrlEncodedFormEntity(nameValuePair)); 
         HttpResponse responce = httpclient.execute(httppost); 

         HttpEntity httpEntity = responce.getEntity(); 

         response = EntityUtils.toString(httpEntity); 
         Log.d("response is", response); 

         return new JSONObject(response); 

        } catch (Exception ex) { 

         ex.printStackTrace(); 

        } 

        return null; 
       } 

       @Override 
       protected void onPostExecute(JSONObject result) 
       { 
        super.onPostExecute(result); 
        //Log.v("TAG_RESULTadapter",""+result); 

        pd.dismiss(); 
        if(result != null) 
        { 
         try 
         { 


          JSONObject jobj = result.getJSONObject("Response"); 
          String message = jobj.getString("Message"); 
          String issuceess = jobj.getString("IsSuccess"); 

          if(issuceess.equals("true")) 
          { 

           JSONObject layout = result.getJSONObject("Layout"); 
           // Log.v("TAG_routearray",""+layoutarray); 
            maxrows=layout.getInt("MaxRows"); 

            maxcol=layout.getInt("MaxColumns"); 
            grid.setNumColumns(maxcol); 


            JSONArray routearray = layout.getJSONArray("SeatDetails"); 
            for (int i = 0; i < routearray.length(); i++) { 

            String Row = routearray.getJSONObject(i).getString("Row"); 
           // Log.v("TAG_routearray",""+Row); 
            String Col = routearray.getJSONObject(i).getString("Col"); 
            String Height = routearray.getJSONObject(i).getString("Height"); 
            String Width = routearray.getJSONObject(i).getString("Width"); 
            String SeatNo = routearray.getJSONObject(i).getString("SeatNo"); 
            String Gender = routearray.getJSONObject(i).getString("Gender"); 

             String Deck = routearray.getJSONObject(i).getString("Deck"); 
             String IsAvailable = routearray.getJSONObject(i).getString("IsAvailable"); 
             String Fare = routearray.getJSONObject(i).getString("Fare"); 



            Log.v("TAG_Maxfare",""+Fare); 
            HashMap<String, String> map = new HashMap<String, String>(); 
            map.put("Row", Row); 
            map.put("Col", Col); 
            map.put("Height", Height); 
            map.put("Width", Width); 
            map.put("SeatNo", SeatNo); 
            map.put("Deck", Deck); 
            map.put("IsAvailable", IsAvailable); 
            map.put("Gender", Gender); 
            if(Height.equalsIgnoreCase("1")&& Width.equalsIgnoreCase("1")) { 
            if(SeatNo.equalsIgnoreCase("")&& IsAvailable.equalsIgnoreCase("false")){ 
             map.put("seat_img", ""+R.drawable.noseat); 
             } 
            else{ 
              if(IsAvailable.equalsIgnoreCase("false")&&SeatNo!= ""){ 
               map.put("seat_img", ""+R.drawable.seatgreen); 
              } 
              if(IsAvailable.equalsIgnoreCase("false")&&SeatNo!= ""&& Gender.equalsIgnoreCase("F")){ 
               map.put("seat_img", ""+R.drawable.women); 
              } 
              if(SeatNo== ""&& Gender.equalsIgnoreCase("M")){ 
               map.put("seat_img", ""+R.drawable.noseat); 
              } 

             /* if(IsAvailable.equalsIgnoreCase("false")){ 
               map.put("seat_img", ""+R.drawable.seatgreen); 
              }*/else if(IsAvailable.equalsIgnoreCase("true")){ 
               map.put("seat_img", ""+R.drawable.seat); 
              } 
             } 
            } 
            map.put("Fare", Fare); 
            sheetdetails.add(map); 

            } 
            CustomGrid adapter = new CustomGrid(MainActivity.this, sheetdetails); 
            grid.setAdapter(adapter); 


          } 
         } 


         catch (Exception e) 
         { 
          e.printStackTrace(); 
         } 
        } 
        else 
        { 
         Toast.makeText(MainActivity.this, "Network Problem", Toast.LENGTH_LONG).show(); 
        } 
       } 
} 
} 

класс Adapter:

public class CustomGrid extends BaseAdapter{ 
    private Context mContext; 
    ArrayList<HashMap<String, String>> sheetdetails = new ArrayList<HashMap<String, String>>(); 
    public CustomGrid(Context c,ArrayList<HashMap<String, String>> sheetdetails) { 
     mContext = c; 
     this.sheetdetails= sheetdetails; 
    }@Override 
    public int getCount() { 
     // TODO Auto-generated method stub 
     return sheetdetails.size(); 
    }@Override 
    public Object getItem(int position) { 
     // TODO Auto-generated method stub 
     return sheetdetails.get(position); 
    } 
    @Override 
    public long getItemId(int arg0) { 
     // TODO Auto-generated method stub 
     return 0; 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     // TODO Auto-generated method stub 
     View grid; 
     LayoutInflater inflater = (LayoutInflater) mContext 
      .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     if (convertView == null) { 
      grid = new View(mContext); 
      grid = inflater.inflate(R.layout.row_grid, null); 

      ImageView imageView = (ImageView) grid.findViewById(R.id.grid_image); 

      HashMap<String, String> map = sheetdetails.get(position); 
     String gg =map.get("Gender"); 
      Log.v("TAG_UUUUU",""+gg); 
      imageView.setImageResource(Integer.valueOf(map.get("seat_img"))); 


     } else { 
      grid = (View) convertView; 
     } 

     return grid; 
    } 
    } 

Json: 

    "Layout": { 
     "ExtensionData": {}, 
     "MaxRows": 13, 
     "MaxColumns": 5, 
     "SeatDetails": [ 
      { 
       "ExtensionData": {}, 
       "Row": 0, 
       "Col": 1, 
       "Height": 1, 
       "Width": 1, 
       "SeatNo": "48", 
       "Gender": "", 
       "IsAisle": false, 
       "Deck": 1, 
       "IsAC": true, 
       "IsSleeper": false, 
       "IsAvailable": true, 
       "Fare": 1400, 
       "ChildFare": 0, 
       "InfantFare": 0 
      }, 
      { 
       "ExtensionData": {}, 
       "Row": 0, 
       "Col": 2, 
       "Height": 1, 
       "Width": 1, 
       "SeatNo": "", 
       "Gender": "M", 
       "IsAisle": true, 
       "Deck": 1, 
       "IsAC": true, 
       "IsSleeper": false, 
       "IsAvailable": false, 
       "Fare": 0, 
       "ChildFare": 0, 
       "InfantFare": 0 
      }, 

Это мой JSON. Каждый раз из json я получаю max-col, max row.

Из json создайте сетку с max-col и max-row динамически.

После этого на основе индекса строки и столбца от json мне нужно поместить изображение в сетку.

Например, если индекс [0,0] не был там, оставьте эту сетку. Если индекс [0,2] помещен в сетку.

С 3 дней я попытался узнать сетку индекса, но я ничего не получаю. Пожалуйста, помогите мне.

+0

Делитесь кодом вашего адаптера –

+0

В третий раз вы задаете тот же вопрос –

+0

да digvesh. я не получил никакого решения для этого –

ответ

0
imageView.setImageResource(Integer.valueOf(map.get("seat_img"))); 

Вы должны сделать это из условных операторов. Так что он изменяется даже тогда, когда конвертированное представление не равно нулю.

+0

, я не получил вас. Теперь я хочу знать индекс сетки. –

+0

Что вы подразумеваете под «Я хочу знать индекс сетки»? –

+0

Abhishek .... см. Мой json. сначала данные представляют собой строку 0 и col 1, поэтому мне нужно поместить изображение в индекс [0,1]. поэтому я покажу [0,0] индекс как пустое поле (без изображения), поэтому каждый раз, когда мне нужно проверить индекс строки и столбца и поместить изображение. –

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