Could you please tell me what's wrong with this code. It runs but results are not listed. I just want a simple SQLiteDB running test to finalize my another project. I assume that something wrong with ArrayList use.
public class MainActivity extends Activity {
String names;
ListView lvMain;
ArrayList<String> values;
ArrayAdapter<String> adapter;
DBHelper dbHelper;
EditText et;
Button btnAdd;
Button btnRead;
Button btnClear;
Button btnShow;
Cursor c;
int nameColIndex;
int idColIndex;
/**
* Called when the activity is first created.
*/
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btnAdd = (Button) findViewById(R.id.btnAdd);
btnRead = (Button) findViewById(R.id.btnRead);
btnClear = (Button) findViewById(R.id.btnClear);
btnShow = (Button) findViewById(R.id.btnShow);
dbHelper = new DBHelper(this);
lvMain = (ListView) findViewById(R.id.lvMain);
values = new ArrayList<String>();
}
public void onButtonClick(View v) {
ContentValues cv = new ContentValues();
String name = et.getText().toString();
SQLiteDatabase db = dbHelper.getWritableDatabase();
switch (v.getId()) {
case R.id.btnAdd:
cv.put("name", name);
// вставляем запись и получаем ее ID
long rowID = db.insert("mytable", null, cv);
break;
case R.id.btnRead:
// делаем запрос всех данных из таблицы mytable, получаем Cursor
c = db.query("mytable", null, null, null, null, null, null);
// ставим позицию курсора на первую строку выборки
// если в выборке нет строк, вернется false
if (c.moveToFirst()) {
// определяем номера столбцов по имени в выборке
idColIndex = c.getColumnIndex("id");
nameColIndex = c.getColumnIndex("name");
do {
// получаем значения по номерам столбцов
c.getInt(idColIndex);
names = c.getString(nameColIndex);
values.add(names);
// переход на следующую строку
// а если следующей нет (текущая - последняя), то false - выходим из цикла
} while (c.moveToNext());
} else {
c.close();
}
break;
case R.id.btnClear:
// удаляем все записи
int clearCount = db.delete("mytable", null, null);
break;
case R.id.btnShow:
break;
}
// закрываем подключение к БД
adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, values);
lvMain.setAdapter(adapter);
dbHelper.close();
adapter.notifyDataSetChanged();
}
class DBHelper extends SQLiteOpenHelper {
public DBHelper(Context context) {
// конструктор суперкласса
super(context, "myDB", null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
// создаем таблицу с полями
db.execSQL("create table mytable ("
+ "id integer primary key autoincrement,"
+ "name text,"
+ "email text" + ");");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
} }
Here is main, may be I am missing something?
`<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Name"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp">
</TextView>
<EditText
android:id="@+id/et"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1">
<requestFocus>
</requestFocus>
</EditText>
</LinearLayout>
<LinearLayout
android:id="@+id/linearLayout2"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<Button
android:id="@+id/btnAdd"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="onButtonClick"
android:text="Add">
</Button>
<Button
android:id="@+id/btnRead"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="onButtonClick"
android:text="Read">
</Button>
<Button
android:id="@+id/btnClear"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="onButtonClick"
android:text="Clear">
</Button>
<Button
android:id="@+id/btnShow"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="onButtonClick"
android:text="Show">
</Button>
</LinearLayout>
<ListView
android:id="@+id/lvMain"
android:layout_width="match_parent"
android:layout_height="match_parent">
</ListView>
</LinearLayout>`