我想点击这个[按钮] [1]然后点击新活动ListNimNama.java
我有这段代码:
DbHelper.java
package id.co.pips.databasecrud;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import java.util.ArrayList;
import id.co.pips.databasecrud.PDM.Mahasiswa;
public class DbHelper extends SQLiteOpenHelper {
public static final String DATABASE_NAME = "database_mahasiswa.db";
public static final int DATABASE_VERSION = 1;
public static final String TABLE_MAHASISWA = "MAHASISWA";
public static final String FIELD_MAHASISWA_NIM = "NIM";
public static final String FIELD_MAHASISWA_NAMA = "NAMA";
public DbHelper (Context c){
super(c, DbHelper.DATABASE_NAME,null, DbHelper.DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE " + DbHelper.TABLE_MAHASISWA
+"(ID INTEGER PRIMARY KEY, "
+ DbHelper.FIELD_MAHASISWA_NIM + " VARCHAR(10),"
+ DbHelper.FIELD_MAHASISWA_NAMA + " VARCHAR(50));");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
public int getJumlahBaris(){
SQLiteDatabase db = this.getReadableDatabase();
Cursor crs = db.rawQuery("SELECT * FROM " + DbHelper.TABLE_MAHASISWA, null);
int rowCount = crs.getCount();
db.close();
return rowCount;
}
public void insertMahasiswa(Mahasiswa m){
SQLiteDatabase db = this.getWritableDatabase();
ContentValues mahasiswaCV = new ContentValues();
mahasiswaCV.put(DbHelper.FIELD_MAHASISWA_NAMA , m.getNama());
mahasiswaCV.put(DbHelper.FIELD_MAHASISWA_NIM, m.getNim());
db.insert(DbHelper.TABLE_MAHASISWA, null, mahasiswaCV);
db.close();
}
public void insertMahasiswa2(Mahasiswa m){
SQLiteDatabase db = this.getWritableDatabase();
db.execSQL("INSERT INTO " + DbHelper.TABLE_MAHASISWA
+ " ( " + DbHelper.FIELD_MAHASISWA_NIM
+ ", " + DbHelper.FIELD_MAHASISWA_NAMA
+ ") VALUES ( ' "
+ m.getNama()
+ "', '"
+ m.getNim()
+ "' );");
db.close();
}
public ArrayList<String> getAllNamaMahasiswa()
{
ArrayList listNamaMahasiswa = new ArrayList<String>();
//populate array
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.query(TABLE_MAHASISWA, null, null, null, null, null, null);
cursor.moveToFirst();
while(!cursor.isAfterLast())
{
int indexNama = cursor.getColumnIndex(DbHelper.FIELD_MAHASISWA_NAMA);
int indexNim = cursor.getColumnIndex(DbHelper.FIELD_MAHASISWA_NIM);
String nama = cursor.getString(indexNama);
String nim = cursor.getString(indexNim);
listNamaMahasiswa.add(nama);
cursor.moveToNext();
}
cursor.close();
db.close();
return listNamaMahasiswa;
}
public Cursor getAllNamaNimMahasiswa()
{
//populate array
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery("SELECT * FROM " + TABLE_MAHASISWA, null);
return cursor;
}
}
这里是我的ListNimNama.java
package id.co.pips.databasecrud;
import android.database.Cursor;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
import android.widget.Toast;
import java.util.ArrayList;
import static id.co.pips.databasecrud.DbHelper.FIELD_MAHASISWA_NIM;
public class ListNimNama extends AppCompatActivity {
ListView lv;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_list_nim_nama);
lv = (ListView)findViewById(R.id.listView);
DbHelper db = new DbHelper(this);
Cursor cursor = db.getAllNamaNimMahasiswa();
String[] fromColumns = {DbHelper.FIELD_MAHASISWA_NIM, DbHelper.FIELD_MAHASISWA_NAMA};
int[] toViews = {R.id.namaItem, R.id.nimItem};
SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, R.layout.activity_list_nim_nama, cursor, fromColumns, toViews, 0);
lv.setAdapter(adapter);
}
}
这里是ListNimNama.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_list_nim_nama"
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="id.co.pips.databasecrud.ListNimNama">
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="Nama"/>
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/namaItem"/>
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/nimItem"/>
<ListView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/listView"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
</RelativeLayout>
我之前收到了消息:
java.lang.IllegalArgumentException:列'_id'不存在
在我将DbHelper公共Cursor getAllNamaNimMahasiswa()上的方法更改为:
public Cursor getAllNamaNimMahasiswa()
{
//populate array
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery("SELECT NIM as _id, NAMA, NIM FROM " + TABLE_MAHASISWA, null);
return cursor;
}