在这里,我使用了带有重复字符串的列表。我要循环运行,说如果项目为“ 1”,那么如果其“ 4”正常edittext,则edittext输入类型应该为数字。现在我的问题是如何在edittext的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);
}
});
请帮助我以简单的方式解决此问题
谢谢!
答案 0 :(得分:0)
尝试使用setId作为视图控件。
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){
}
}
答案 1 :(得分:0)
for(int i=0;i<3;i++){
txt=new TextView(Second.this);
txt.setText(""+i+"");
txt.setId(""+i+"");
linearLayout.addView(txt);
}