如何在线性布局中获取动态添加的编辑文本的子位置?
how to get child positions of dynamically added edittext in linearlayout?
在这里,我使用了带有重复 string.I 的列表,我要 运行 循环说如果项目是“1”,那么 edittext 输入类型应该是数字,如果它“4”正常 edittext.Now 我的问题是如何在 edittext.The 的 onclick 事件中获取 id 下面的代码一直有效,直到 onclick。
list.add("1");
list.add("1");
list.add("4");
list.add("4");
for(int i=0;i<list.size();i++){
String str=list.get(i);
editText1=new EditText(Second.this);
editText1.setId(i);
if(str.equals("1")){
editText1.setInputType(InputType.TYPE_CLASS_NUMBER);
linearLayout.addView(editText1);
}
else if(str.equals("4")){
linearLayout.addView(editText1);
}
linearLayout.addView(txt);
}
int position=linearLayout .getChildCount();
Log.d("linearLayout","count"+position);
editText1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
int currentViewId =view.getId();
Log.d("linearLayout","currentViewId"+currentViewId);
}
});
请帮我用简单的方法解决这个问题
提前致谢!
尝试这种方式为视图控件设置 Id。
linearLayout=(LinearLayout)findViewById(R.id.lin);
textView.setText(s);
for(int i=0;i<3;i++){
txt=new TextView(Second.this);
txt.setText(""+i+"");
txt.setId(i);
linearLayout.addView(txt);
}
int position=linearLayout .getChildCount();
Log.d("linearLayout","count"+position);
for(int i = 0; i < linearLayout .getChildCount(); ++i) {
View v = linearLayout.getChildAt(i);
int currentViewId =v.getId();
Log.d("linearLayout","currentViewId"+currentViewId);
if(currentViewId == 1) {
txt.setTextColor(Second.this.getResources().getColor(R.color.colorPrimary));
}
else if (currentViewId==2){
}
}
for(int i=0;i<3;i++){
txt=new TextView(Second.this);
txt.setText(""+i+"");
txt.setId(""+i+"");
linearLayout.addView(txt);
}
在这里,我使用了带有重复 string.I 的列表,我要 运行 循环说如果项目是“1”,那么 edittext 输入类型应该是数字,如果它“4”正常 edittext.Now 我的问题是如何在 edittext.The 的 onclick 事件中获取 id 下面的代码一直有效,直到 onclick。
list.add("1");
list.add("1");
list.add("4");
list.add("4");
for(int i=0;i<list.size();i++){
String str=list.get(i);
editText1=new EditText(Second.this);
editText1.setId(i);
if(str.equals("1")){
editText1.setInputType(InputType.TYPE_CLASS_NUMBER);
linearLayout.addView(editText1);
}
else if(str.equals("4")){
linearLayout.addView(editText1);
}
linearLayout.addView(txt);
}
int position=linearLayout .getChildCount();
Log.d("linearLayout","count"+position);
editText1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
int currentViewId =view.getId();
Log.d("linearLayout","currentViewId"+currentViewId);
}
});
请帮我用简单的方法解决这个问题
提前致谢!
尝试这种方式为视图控件设置 Id。
linearLayout=(LinearLayout)findViewById(R.id.lin);
textView.setText(s);
for(int i=0;i<3;i++){
txt=new TextView(Second.this);
txt.setText(""+i+"");
txt.setId(i);
linearLayout.addView(txt);
}
int position=linearLayout .getChildCount();
Log.d("linearLayout","count"+position);
for(int i = 0; i < linearLayout .getChildCount(); ++i) {
View v = linearLayout.getChildAt(i);
int currentViewId =v.getId();
Log.d("linearLayout","currentViewId"+currentViewId);
if(currentViewId == 1) {
txt.setTextColor(Second.this.getResources().getColor(R.color.colorPrimary));
}
else if (currentViewId==2){
}
}
for(int i=0;i<3;i++){
txt=new TextView(Second.this);
txt.setText(""+i+"");
txt.setId(""+i+"");
linearLayout.addView(txt);
}