作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
在写论文时,我在 LogCat 中收到一条警告,我认为它可能会影响我的代码。
我收到一个包含一些数据的 JSON,我必须以编程方式创建一个带有复选框和单选按钮(在 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
}
最佳答案
Checkbox
类是 TextView
的子类,因此您的代码永远不会进入 else if
block ,这就是警告所说的.
android.widget.TextView
↳android.widget.Button
↳android.widget.CompoundButton
↳android.widget.CheckBox
关于java - 我的复选框似乎不是 instanceof CheckBox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27765136/
我是一名优秀的程序员,十分优秀!