如何将ID添加到展开视图?

时间:2019-04-03 10:51:28

标签: java android arrays

我正在通过使用布局充气器将视图动态添加到布局中,但是我试图为每个要添加的新视图添加一个ID,以便可以使用吸气剂提取信息。

我还试图更改每个视图中添加的新微调器中的数组数据,因为它当前显示的是默认字符串数组,而不是我从数据库读取的数组

public void onAddField(View v) {

        LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        final View rowView = inflater.inflate(R.layout.field, null);
        // Add the new row before the add field button.
        getdata2();
        parentLinearLayout.addView(rowView, parentLinearLayout.getChildCount() - 1);
        Log.d(String.valueOf(rowView.getId()), "onAddField: ");
        getdata2();

    }

private void getdata2() {
        StringRequest stringRequest = new StringRequest("http://.../getDataCategories.php",
                new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {
                        JSONObject j = null;
                        try {
                            j = new JSONObject(response);
                            result = j.getJSONArray(JSON_ARRAY);
                            catdetails(result);
                        } catch (JSONException e) {
                            e.printStackTrace();
                        }
                    }
                },
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                    }
                });
        RequestQueue requestQueue = Volley.newRequestQueue(this);
        requestQueue.add(stringRequest);
    }

    private void catdetails(JSONArray j) {
        for (int i = 0; i < j.length(); i++) {
            try {
                JSONObject json = j.getJSONObject(i);
                arrayList2.add(json.getString(CategoryType_idArray));
            } catch (JSONException e) {
                e.printStackTrace();
            }
        }
        type2_workout_mySpinner.setAdapter(new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_spinner_dropdown_item, arrayList2));
    }

1 个答案:

答案 0 :(得分:0)

您可以在视图对象内添加id作为标签 查看rowView = inflater.inflate(R.layout.field,null); rowView.setTag(1);

将数字视为您的视图ID,并以getTag()的形式获取此ID。

您还可以使用上述方法更新阵列数据和微调器。 就像使用parentLinearLayout.getchildAt()从parentLinearLayout中获取一个孩子,然后从视图中获取微调器,然后将适配器再次设置为微调器一样。