0
我根据项目需求在布局中动态创建视图。视图序列来自json。当我点击编辑文本,然后timepicker函数要求在编辑文本中设置时间,但是当我设置编辑文本值时,它会给出最后创建的编辑文本的ID。 这里是我的代码: -如何在android中动态创建编辑文本时点击编辑文本的ID?
for (i = 0; i < alist_interface_type.size(); i++) {
if(alist_interface_type.get(i).equals("textbox")) {
LinearLayout lLayout = new LinearLayout(getActivity());
lLayout.setOrientation(LinearLayout.VERTICAL);
lLayout.setPadding(5, 5, 5, 5);
lLayout.setBackgroundColor(Color.parseColor("#E0E0E0"));
label = new TextView(getActivity());
label.setText(example.get(i));
label.setTextSize(16);
label.setTextColor((Color.parseColor("#01c534")));
label.setPadding(5, 5, 5, 5);
et = new EditText(getActivity());
et.setSingleLine(true);
et.setId(i);
et.setTextSize(18);
et.setPadding(5, 5, 5, 5);
if (!data_type.get(i).toString().equals("text")) {
InputFilter[] filters = new InputFilter[1];
filters[0] = new InputFilter.LengthFilter(Integer.parseInt(data_type.get(i).toString()));
et.setFilters(filters);
}
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
LayoutParams.MATCH_PARENT,
LayoutParams.WRAP_CONTENT);
lLayout.addView(label, lp);
lLayout.addView(et, lp);
ll.addView(lLayout);
lp.setMargins(5, 0, 5, 5);
lLayout.setLayoutParams(lp);
alist_id.add(i);
alist_views.add("EditText");
}
else if (alist_interface_type.get(i).equals("time") {
LinearLayout lLayout = new LinearLayout(getActivity());
lLayout.setOrientation(LinearLayout.VERTICAL);
lLayout.setPadding(5, 5, 5, 5);
lLayout.setBackgroundColor(Color.parseColor("#E0E0E0"));
label = new TextView(getActivity());
label.setText(example.get(i));
label.setTextSize(16);
label.setTextColor((Color.parseColor("#01c534")));
label.setPadding(5, 5, 5, 5);
et2 = new EditText(getActivity())
{
public boolean getDefaultEditable() {
return false;
}
};
et2.setSingleLine(true);
et2.setId(i);
et2.setTextSize(18);
Log.d("edit text cliked", ""+i);
et2.setText(pref.getString(alist_Label_name.get(i),""));
et2.setPadding(5, 5, 5, 5);
if (!data_type.get(i).toString().equals("text")) {
InputFilter[] filters = new InputFilter[1];
filters[0] = new InputFilter.LengthFilter(Integer.parseInt(data_type.get(i).toString()));
et2.setFilters(filters);
}
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
LayoutParams.MATCH_PARENT,
LayoutParams.WRAP_CONTENT);
lLayout.addView(label, lp);
lLayout.addView(et2, lp);
lp.setMargins(5, 0, 5, 5);
lLayout.setLayoutParams(lp);
ll.addView(lLayout);
alist_id.add(i);
alist_views.add("time");
et2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Log.d("id of edit text", ""+et2.getId());
timePicker();
}
});
}
}
在这段代码alist_interface_type是数组列表,包含我的views.If这个列表中包含“时间”,然后创建编辑文字,然后点击编辑文本通话时间选择方法选择的时间和设置编辑文本。我给我的价值编辑文本的ID。单击编辑文本它不会给特定点击编辑文本的ID设置值。
使用setTag()时,时间选择听者回选定的时间和你这段时间设置为您的EditText, –
我认为你有一个监听器为您timepicker()一次选择@BirajZalavadia它不是一个列表视图。我在布局中动态创建视图。 –
方法来识别领域 – Achin