Android-Json数组到带有OnClick侦听器的ImageView

Android-Json数组到带有OnClick侦听器的ImageView,android,arrays,json,Android,Arrays,Json,我试图实现一个特定的结果,从web服务中获取一个数字数组,然后将这些数字中的每一个分配给一个特定的ImageView,该ImageView将充当按钮,因此我的活动中有22个ImageView,这就是我的json数组的外观 { "GetAvailableSeatsResult": [ 2, 3, 4, 5, 6, 7, 8, 9, 10,

我试图实现一个特定的结果,从web服务中获取一个数字数组,然后将这些数字中的每一个分配给一个特定的ImageView,该ImageView将充当按钮,因此我的活动中有22个ImageView,这就是我的json数组的外观

{
    "GetAvailableSeatsResult": [
        2,
        3,
        4,
        5,
        6,
        7,
        8,
        9,
        10,
        11,
        12,
        13,
        14,
        15,
        16,
        17,
        18,
        19,
        20
    ]
}
每个图像视图都可以单击,因此当单击时,它会保留阵列中的一个数字,并在单击后显示不同的图像,我可以获取数据,但不知道如何处理此问题

这是我的班级,我在那里获取数据

public class Seats extends AppCompatActivity {

    private static final String availableSeatsURL = "url";
    private static final String availableSeatsArray = "GetAvailableSeatsResult";
    private Toolbar mToolbar;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_seats);

        mToolbar = (Toolbar) findViewById(R.id.app_bar);
        setSupportActionBar(mToolbar);
        getSupportActionBar().setHomeButtonEnabled(true);
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);

        getAvailableSeats();
    }

    public class Seat {
        private int index;
        private int number;

        public int getIndex() {
            return index;
        }

        public void setIndex(int index) {
            this.index = index;
        }

        public int getNumber() {
            return number;
        }

        public void setNumber(int number) {
            this.number = number;
        }
    }

    public ArrayList<String> getAvailableSeats(String string) {
        return null;
    }

    public void getAvailableSeats() {
        JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, availableSeatsURL + 26 + "/" + 7, null, new Response.Listener<JSONObject>() {
            @Override
            public void onResponse(JSONObject response) {
                VolleyLog.d(response.toString());

                ArrayList<Seat> seats = new ArrayList<Seat>();
                ArrayList<String> availableSeats = new ArrayList<String>();

                try {
                    JSONArray jsonArray = response.getJSONArray(availableSeatsArray);
                    for (int i = 0; i < jsonArray.length(); i++) {

                        JSONObject jSONObject = jsonArray.getJSONObject(i);



                    }
                } catch (JSONException e) {
                    e.printStackTrace();
                    Toast.makeText(getApplicationContext(), "Error: " + e.getMessage(), Toast.LENGTH_LONG).show();
                }
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                VolleyLog.d("Error: " + error.getMessage());

            }
        });
        int MY_SOCKET_TIMEOUT_MS = 20000;
        jsonObjectRequest.setRetryPolicy(new DefaultRetryPolicy(
                MY_SOCKET_TIMEOUT_MS,
                DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
                DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
        AppController.getInstance(getApplicationContext()).addToRequestQueue(jsonObjectRequest);
    }

}

以编程方式创建imageview,将其添加到视图中并设置onClickListener

    for (int i = 0; i < seatsArray.length; i++) {
        imageView[i] = new ImageView(this);
        //set image, etc...
        imageView[i].setId(i);
        ll.addView(imageView[i]); //add it to your layout
        imageView[i].setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                //v.setBackground(...);

            }
         });
     }
for(int i=0;i

如果你有很多的图片浏览,你会想考虑使用ListVIEW/GRIDVIEW。

DeviReVIEW或ListVIEW将很好地完成这一任务。在Framelayout中使用ImageView和TextView创建一个适配器以容纳单个行。
    for (int i = 0; i < seatsArray.length; i++) {
        imageView[i] = new ImageView(this);
        //set image, etc...
        imageView[i].setId(i);
        ll.addView(imageView[i]); //add it to your layout
        imageView[i].setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                //v.setBackground(...);

            }
         });
     }