根据我的论文,我在LogCat中发出警告,我认为这可能会影响我的代码。
我收到一些包含一些数据的JSON,我必须以编程方式使用checkbox和radiobutton(在RadioGroup中)进行布局。后来我可以投票这个调查,当我在布局中使用getChildAt()
时,这是我的问题if(child instanceof CheckBox)
不起作用,我无法理解为什么。
这是我的代码:
ll = (LinearLayout) findViewById(R.id.llSurvey); //OnCreate
/*Creating CheckBox*/
String votes = jObj.getString("votes");
String label = jObj.getString("label");
String usid = jObj.getString("USID");
if(uType.equals("multi")){
CheckBox cb = new CheckBox(SingleSurvey.this);
cb.setText(label + " (" + votes + ")");
cb.setId(s+1000);
ll.addView(cb);
Log.i("MULTI_TYPE", "usid: " + usid + " id: " + cb.getId());
}
s++;
/*Voting*/
for(int i = 0; i < ll.getChildCount(); i++){
View child = ll.getChildAt(i);
int p = child.getId();
Log.i("CHILD ID", "id: " + p);
if(child instanceof TextView){
continue;
}
else if(child instanceof CheckBox){
Log.i("INSTANCE OF CB", "checkbox");
CheckBox cb = (CheckBox) child;
if(cb.isChecked()){
int cbId = cb.getId();
usid = rb_usid[cbId];
Log.i("CHECKBOX", "usid: " + usid);
}
}
//some other stuff
}
答案 0 :(得分:7)
Checkbox
类是TextView
子类,因此您的代码永远不会进入else if
块,这就是警告所说的内容。
android.widget.TextView
↳android.widget.Button
↳android.widget.CompoundButton
↳android.widget.CheckBox