Note that there are some explanatory texts on larger screens.

plurals
  1. POError When Calling Data From SQLDatabase to ListView
    primarykey
    data
    text
    <p>I have been trying to find the error in my project but I still have no luck.As I am new to programming I can't pin point this error. I have a list view within a dialog in my main project and what am doing here is trying to call data from my MySQL database browser to the list view. I have made a new project for this code as I don't want to mess up my main project with this code.</p> <pre><code> package com.pdb.projectdb; import java.util.ArrayList; import android.app.ListActivity; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.TextView; import android.widget.Toast; public class Main1Activity extends ListActivity { private static final String DB_NAME = "yourdb.sqlite3"; //A good practice is to define database field names as constants private static final String TABLE_NAME = "friends"; private static final String FRIEND_ID = "_id"; private static final String FRIEND_NAME = "name"; private SQLiteDatabase database; private ListView listView; private ArrayList friends; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main1); //Our key helper ExternalDbOpenHelper dbOpenHelper = new ExternalDbOpenHelper(this, DB_NAME); database = dbOpenHelper.openDataBase(); //That’s it, the database is open! fillFreinds(); setUpList(); } private void setUpList() { //We use a standard adapter and an element layout for brevity’s sake setListAdapter(new ArrayAdapter&lt;String&gt;(this, android.R.layout.simple_list_item_1, friends)); listView = getListView(); //Let’s set a message shown upon tapping an item listView.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView parent, View view, int position,long id) { Toast.makeText(getApplicationContext(), ((TextView) view).getText() + " could be Softeq's friend", Toast.LENGTH_SHORT).show(); } } } //Extracting elements from the database private void fillFreinds() { friends = new ArrayList&lt;String&gt;(); Cursor friendCursor = database.query(TABLE_NAME, new String[] {FRIEND_ID, FRIEND_NAME}, null, null, null, null, FRIEND_NAME); friendCursor.moveToFirst(); if(!friendCursor.isAfterLast()) { do { String name = friendCursor.getString(1); friends.add(name); } while (friendCursor.moveToNext()); } friendCursor.close(); } } </code></pre> <p>XML.file</p> <pre><code> &lt;RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".Main1Activity" &gt; &lt;ImageButton android:id="@+id/imageButton1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:layout_marginTop="114dp" android:src="@drawable/ic_launcher" /&gt; &lt;/RelativeLayout&gt; </code></pre> <p>DBHelper</p> <pre><code> package com.pdb.projectdb; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import android.content.Context; import android.database.SQLException; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.util.Log; public class ExternalDbOpenHelper extends SQLiteOpenHelper { //Path to the device folder with databases public static String DB_PATH; //Database file name public static String DB_NAME; public SQLiteDatabase database; public final Context context; public SQLiteDatabase getDb() { return database; } public ExternalDbOpenHelper(Context context, String databaseName) { super(context, databaseName, null, 1); this.context = context; //Write a full path to the databases of your application String packageName = context.getPackageName(); DB_PATH = String.format("/data/data/newDB/databases/", packageName); DB_NAME = databaseName; openDataBase(); } //This piece of code will create a database if it’s not yet created public void createDataBase() { boolean dbExist = checkDataBase(); if (!dbExist) { this.getReadableDatabase(); try { copyDataBase(); } catch (IOException e) { Log.e(this.getClass().toString(), "Copying error"); throw new Error("Error copying database!"); } } else { Log.i(this.getClass().toString(), "Database already exists"); } } //Performing a database existence check private boolean checkDataBase() { SQLiteDatabase checkDb = null; try { String path = DB_PATH + DB_NAME; checkDb = SQLiteDatabase.openDatabase(path, null, SQLiteDatabase.OPEN_READONLY); } catch (SQLException e) { Log.e(this.getClass().toString(), "Error while checking db"); } //Android doesn’t like resource leaks, everything should // be closed if (checkDb != null) { checkDb.close(); } return checkDb != null; } //Method for copying the database private void copyDataBase() throws IOException { //Open a stream for reading from our ready-made database //The stream source is located in the assets InputStream externalDbStream = context.getAssets().open(DB_NAME); //Path to the created empty database on your Android device String outFileName = DB_PATH + DB_NAME; //Now create a stream for writing the database byte by byte OutputStream localDbStream = new FileOutputStream(outFileName); //Copying the database byte[] buffer = new byte[1024]; int bytesRead; while ((bytesRead = externalDbStream.read(buffer)) &gt; 0) { localDbStream.write(buffer, 0, bytesRead); } //Don’t forget to close the streams localDbStream.close(); externalDbStream.close(); } public SQLiteDatabase openDataBase() throws SQLException { String path = DB_PATH + DB_NAME; if (database == null) { createDataBase(); database = SQLiteDatabase.openDatabase(path, null, SQLiteDatabase.OPEN_READWRITE); } return database; } @Override public synchronized void close() { if (database != null) { database.close(); } super.close(); } @Override public void onCreate(SQLiteDatabase db) {} @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {} } </code></pre> <p>project view <a href="http://img441.imageshack.us/img441/1936/projectg.jpg" rel="nofollow">http://img441.imageshack.us/img441/1936/projectg.jpg</a></p> <p>P.s my friend told me to not waste question on here as you can be banned please let me know if I am not formatting my question right </p> <p>Thank you</p> <p><a href="http://img594.imageshack.us/img594/3965/fixq.jpg" rel="nofollow">http://img594.imageshack.us/img594/3965/fixq.jpg</a></p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload