如何从数据库中提取数据,并查看他们作为一个ListView [英] How to pull data from database and view them as a ListView

查看:215
本文介绍了如何从数据库中提取数据,并查看他们作为一个ListView的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用我的ListView的自定义列表适配器。我的每个项目有4个项目。这是来自一个listArray。

I am using a custom list adapter for my ListView. My each list item has 4 items. which are come from a listArray.

下面是code这拉从列表中的数组列表项。

Here is the code which pull the list items from List Array.

   import android.app.Fragment;
import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ListView;



import com.rupomkhondaker.sonalibank.adapter.PhoneListAdapter;
import com.rupomkhondaker.sonalibank.model.ContactItem;

import java.util.ArrayList;


public class GMOFragment extends Fragment {
    public GMOFragment(){}


    private boolean database;
    private static final String DB_NAME = "SBLdata.db";

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {

        View rootView = inflater.inflate(R.layout.fragment_gmo, container, false);

        final ArrayList<ContactItem> listData = getListData();

        final ListView listView = (ListView) rootView.findViewById(R.id.gmolistView);
        listView.setAdapter(new PhoneListAdapter(getActivity(), listData));


        DataBaseHelper dataOpen = new DataBaseHelper((MainActivity) getActivity(), DB_NAME);
        //Trying to open the DataBase
        database = dataOpen.openDataBase();



        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> a, View v, int position, long id) {
                ContactItem newsData = (ContactItem) listView.getItemAtPosition(position);

                Intent intent = new Intent(getActivity(), ContactDetail.class);

                intent.putExtra("DATA_KEY", newsData);

                startActivity(intent);
            }

        });

        return rootView;
    }

  private ArrayList<ContactItem> getListData() {
        ArrayList<ContactItem> listMockData = new ArrayList<ContactItem>();


       String sqlQuery = "select BR_NAME,PHONE,MOBILE,EMAIL from SBL_Contact";
       Cursor contactsCursor = database.rawQuery(sqlQuery, null);

       ContactItem newsData = null;

      while (contactsCursor.moveToNext()) {
          newsData = new ContactItem();
          newsData.setName(contactsCursor.getString(0));
          newsData.setPhone(contactsCursor.getString(1));
          newsData.setMobile(contactsCursor.getString(2));
          newsData.setEmail(contactsCursor.getString(3));

          listMockData.add(newsData);
      }
        return listMockData;
    }

}

不过,现在我已经在SBL_Contact(表名)列1.NAME,2.PHONE,3.MOBILE,4.EMAIL在我SBLdata(databse_name)创建相同的列表

But Now I have created the same list in my SBLdata (databse_name) in SBL_Contact (table name) Column 1.NAME, 2.PHONE, 3.MOBILE , 4.EMAIL

现在请大家帮我提取数据并将它们设置为getListData()

Now please help me to pull the data and set them to getListData()

推荐答案

您可以创建一个SQL查询例如:

You can create a sql query e.g.:

String sqlQuery = "select name,phone,mobile,email from SBL_Contact";

然后用光标用它来得到的结果:

Then use it with a cursor to get the results:

Cursor contactsCursor = database.rawQuery(sqlQuery, null);

,然后通过你的光标迭代:

and then iterate through your cursor:

ContactItem newsData = null;

while (contactsCursor.moveToNext()) {
       newsData = new ContactItem();
       newsData.setName(contactsCursor.getString(0));
       newsData.setPhone(contactsCursor.getString(1));
       newsData.setMobile(contactsCursor.getString(2));
       newsData.setEmail(contactsCursor.getString(3));

       listMockData.add(newsData);
    }

这篇关于如何从数据库中提取数据,并查看他们作为一个ListView的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆