我正在通过使用布局充气器将视图动态添加到布局中,但是我试图为每个要添加的新视图添加一个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));
}
答案 0 :(得分:0)
您可以在视图对象内添加id作为标签 查看rowView = inflater.inflate(R.layout.field,null); rowView.setTag(1);
将数字视为您的视图ID,并以getTag()的形式获取此ID。
您还可以使用上述方法更新阵列数据和微调器。 就像使用parentLinearLayout.getchildAt()从parentLinearLayout中获取一个孩子,然后从视图中获取微调器,然后将适配器再次设置为微调器一样。