我尝试将我的视图中的所有标签或对象放入一个arraylist中,如下所示:
public class UpdateQuisioner extends Fragment {
EdiTtext essay_tt_no1, essay_tt_no2;
RadioGroup option_grup_tt_no1, option_grup_tt_no2;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
static ArrayList<View> ListOfView = new ArrayList<View> ();
View [] view = {essay_tt_no1, option_grup_tt_no1, essay_tt_no2, option_grup_tt_no2};
ListOfView.addAll(Arrays.asList(view));
for (int i = 0; i < ListOfView.size(); i++){
Log.i("View ", ListOfView.get(i).toString());
}
}
当我签入我的logcat时,它没有给我标签小部件的名称,但是给了我这样的字符串android.widget.EditText@41f08618
。我的代码有什么问题或有问题吗?
答案 0 :(得分:0)
它不会在toString
中提供具体的字段详细信息。但它会打印对象的hascode以及类名。检查Object.class
文件中的以下方法。
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
答案 1 :(得分:0)
你能覆盖View类实例的toString方法吗? 并在此方法中返回您希望在日志中看到的内容。
答案 2 :(得分:0)
现在修改答案我理解你想要你的观点的资源标识符:
Resources res = getResources();
for (int i = 0; i < ListOfView.size(); i++){
int id = ListOfView.get(i).getId();
try {
Log.i("View ", res.getResourceName(id));
} catch (Resources.NotFoundException e) {
Log.i("Unknown id " + id);
}
}
答案 3 :(得分:0)
答案 4 :(得分:-1)
找不到标签。您提供要打印的视图,以便显示这些字符串。