Android Sql数据库只提供最后的数据

时间:2015-11-08 21:31:00

标签: java android sqlite settext

我正在尝试接收我的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,我只是获取最后的数据。

1 个答案:

答案 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