java - Gridview 到带有图像和文本的新活动
问题描述
我无法将 gridview 的价值用于新活动。我可以获得图像的价值,但无法获得新活动的名称价值。
这是我的 MainActivity 代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
gridView = (GridView) findViewById(R.id.gridview);
images = new ArrayList<>();
names = new ArrayList<>();
getData();
}
private void getData(){
//Showing a progress dialog while our app fetches the data from url
final ProgressDialog loading = ProgressDialog.show(this, "Please wait...","Fetching data...",false,false);
//Creating a json array request to get the json from our api
JsonArrayRequest jsonArrayRequest = new JsonArrayRequest(DATA_URL,
new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
//Dismissing the progressdialog on response
loading.dismiss();
//Displaying our grid
showGrid(response);
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
}
);
//Creating a request queue
RequestQueue requestQueue = Volley.newRequestQueue(this);
//Adding our request to the queue
requestQueue.add(jsonArrayRequest);
}
private void showGrid(JSONArray jsonArray){
//Looping through all the elements of json array
for(int i = 0; i<jsonArray.length(); i++){
//Creating a json object of the current index
JSONObject obj = null;
try {
//getting json object from current index
obj = jsonArray.getJSONObject(i);
//getting image url and title from json object
images.add(obj.getString(TAG_IMAGE_URL));
names.add(obj.getString(TAG_NAME));
} catch (JSONException e) {
e.printStackTrace();
}
}
//Creating GridViewAdapter Object
HotelInfoAdapter gridViewAdapter = new HotelInfoAdapter(this,images,names);
//Adding adapter to gridview
gridView.setAdapter(gridViewAdapter);
gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
String img = String.valueOf(parent.getItemAtPosition(position));
String name = String.valueOf(gridView.getItemAtPosition(position);
Intent intent = new Intent(getApplicationContext(), HotelInfoItem.class);
intent.putExtra("keya", img);
intent.putExtra("keyb", name);
startActivity(intent);
}
});
如何从 gridview 获取名称值到新活动?我尝试使用 getItemAtposition 从 Gridview 获取价值,但它只是从图像中获得价值。
解决方案
推荐阅读
- cognos - 与非用户共享 Cognos 报告
- postgresql - 如何按一列获取唯一行但按第二个排序
- swift - 为什么我会在这里丢失数据?(SwiftUI)
- java - @RequestMapping 的问题
- javascript - this.activatedRoute.queryParamMap.pipe 中的单元测试茉莉花错误
- go - 如何在go html模板中连接href
- java - AWS ECS 中的 Java 服务抛出 java.io.IOException:打开的文件过多
- javascript - 如何从 node.js 服务器下载目录
- slick.js - 控制带有垂直页面滚动的粘性 Slick Slider
- sox - 结合2个不同文件的不同通道