首页 > 解决方案 > 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 获取价值,但它只是从图像中获得价值。

标签: javaandroid

解决方案


推荐阅读