我正在尝试接收我的sqli数据库的所有数据,但奇怪的是,如果我尝试在textview上打印它,我只会得到最后的数据。
但是尝试记录数据会给出完整的数据库,这是正确的,
我无法全部打印出来。
代码:
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
DatabaseHandler db = new DatabaseHandler(getActivity());
View rootView = inflater.inflate(R.layout.fragment_main, container, false);
int currentView = getArguments().getInt(ARG_SECTION_NUMBER);
List<Contact> contacts = db.getAllContacts();
if (currentView == 1) {
for (Contact cn : contacts) {
TextView asd = (TextView) rootView.findViewById(R.id.section_label);
String test = "Id: " + cn.getID() + cn.getJokeCat01();
System.out.println(test);
asd.setText(test);
}
}
}
再次使用Systemoutprint我在控制台中获取所有数据,但如果我尝试setText,我只是获取最后的数据。
答案 0 :(得分:0)
因为&#39;测试&#39;每次以下行
时都会在循环内声明String test = "Id: " + cn.getID() + cn.getJokeCat01();
运行,它将在变量中添加一个新值,使用setText()显示该值,这将删除先前的文本并显示当前文本。
在我看来,以下内容可能会帮助您实现目标:
if (currentView == 1) {
String test="";
for (Contact cn : contacts) {
TextView asd = (TextView) rootView.findViewById(R.id.section_label);
test += "Id: " + cn.getID() + cn.getJokeCat01();
System.out.println(test);
} // end of for
Witze.setText(test);
} // end of if