Android-Json数组到带有OnClick侦听器的ImageView
我试图实现一个特定的结果,从web服务中获取一个数字数组,然后将这些数字中的每一个分配给一个特定的ImageView,该ImageView将充当按钮,因此我的活动中有22个ImageView,这就是我的json数组的外观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,
{
"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(...);
}
});
}