How to get SQLite db values in Arraylist to Listview

旧时模样 提交于 2019-12-25 04:33:41

问题


I need to set adapter values in a listview. In it, I created an ArrayList to get data from SQLite DB and I need to pass it to a listView with 3 columns. Here I mentioned my codes.

Where do I need to call my data Stored in local Db?

DBHelper.java

 public ArrayList<SQLPojo.UserDetails> getUserDetails() {

    ArrayList<SQLPojo.UserDetails> aUserDetailList = new ArrayList<SQLPojo.UserDetails>();

    try {

      String aQuery = "SELECT * FROM " + TABLE_NAME;

      Cursor aCursor = mySqliteDataBase.rawQuery(aQuery, null);

      aCursor.moveToFirst();
      if(aCursor.getCount() > 0) {
        SQLPojo.UserDetails aUserDetails = myReturnValues.getUserDetailInstance();
        aUserDetails.setId(aCursor.getString(aCursor
                .getColumnIndex("ID")));
        aUserDetails.setUsername(aCursor.getString(aCursor
                .getColumnIndex("USERNAME")));
        aUserDetails.setPlace(aCursor.getString(aCursor
                .getColumnIndex("PLACE")));
        aUserDetailList.add( aUserDetails );
      }
      aCursor.close();
    }
    catch(android.database.SQLException e)
    {
      e.printStackTrace();
    }
    return aUserDetailList;
  }

In this class, I am going to get all data and list it to the listview.

GetAllValues.java

public class SQLViewAllData extends Activity {

private SQLDbHelper myDbHelper;
private SQLCustomViewAllDataAdapter myAdapter;
private ListView myListView;
private ArrayList<SQLPojo> aList = new ArrayList<>();
private Activity myContext;

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.listview_view_data);

    widgetInitialization();
    viewAllData();
}
//Initializing Widgets
public void widgetInitialization() {
    myDbHelper = new SQLDbHelper( myContext );
    myListView = (ListView)findViewById( R.id.listview_view_data_LV );
}

public ArrayList<SQLPojo.UserDetails> getUserInfo() {
    return myDbHelper.getUserDetails();
}

//view all data stored in DB
public void viewAllData( ) {
    myAdapter = new SQLCustomViewAllDataAdapter( SQLViewAllData.this,aList);
    myListView.setAdapter( myAdapter );
}}

This is my Adapter Class to get all values CustomAdapter.java

 public View getView( int aPosition, View aConvertView, ViewGroup aParent ) {

LayoutInflater inflater = myActivity.getLayoutInflater();
ViewHolder aHolder;

if( aConvertView == null ) {
  aConvertView = inflater.inflate( R.layout.layout_inflate_custom_listview_view_data, null );

  aHolder = new ViewHolder();

  aHolder.aTextViewID = ( TextView )aConvertView.findViewById( R.id.custom_listview_view_data_ID );
  aHolder.aTextViewUN = ( TextView )aConvertView.findViewById( R.id.custom_listview_view_data_UN );
  aHolder.aTextViewPLC = ( TextView )aConvertView.findViewById( R.id.custom_listview_view_data_Place );
  aConvertView.setTag( aHolder );
}
else {
  aHolder = (ViewHolder) aConvertView.getTag();
}

aHolder.aTextViewID.setText(myData.get(aPosition).toString());
aHolder.aTextViewUN.setText(myData.get(aPosition).toString());
aHolder.aTextViewPLC.setText(myData.get(aPosition).toString());

return aConvertView;

}


回答1:


It should be straight forward. Just do:

public void viewAllData( ) {
  aList = getUserInfo(); //this is where you call the local database.
  myAdapter = new SQLCustomViewAllDataAdapter( SQLViewAllData.this,aList);
  myListView.setAdapter( myAdapter );
}

Also, make sure you change aList from type SQLPojo to SQLPojo.UserDetails.



来源:https://stackoverflow.com/questions/41306863/how-to-get-sqlite-db-values-in-arraylist-to-listview

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!