David Chandler による stORM の使用法を理解するために、データベースから値を挿入してフェッチするだけのサンプル アプリを作成しました。
プロジェクトは次のようになります。
名前を入力してボタン(INSERT)をクリックするEditTextが1つあります。これにより、名前がデータベースに挿入されます。
クリックするとデータベースからすべての名前を取得してLogcatに出力する別のボタン(FETCH)があります。
それで全部です。
プロジェクトのセットアップを行い、必要なすべての .jar ファイルを含めました。挿入は正常に機能していますが、データベース内の名前を取得して Logcat に表示する方法がわかりません。
挿入とフェッチを実行するアクティビティ。
package com.example.stormdemo;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
import com.example.stormdemo.dao.PersonDao;
import com.example.stormdemo.dao.PersonTable;
import android.os.Bundle;
import android.app.Activity;
import android.content.ContentValues;
import android.database.Cursor;
import android.text.Editable;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
public class MainActivity extends Activity {
long my_id = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final EditText e_name = (EditText) findViewById(R.id.editText1);
final PersonDao dao = new PersonDao(this);
final Person newPerson = new Person();
final PersonTable pt = new PersonTable();
Button insert = (Button) findViewById(R.id.buttonInsert);
Button fetch = (Button) findViewById(R.id.buttonFetch);
Button clear = (Button) findViewById(R.id.buttonClear);
insert.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
String name = e_name.getText().toString();
newPerson.setName(name);
System.out.println(name);
long newPersonId = dao.insert(newPerson);
my_id = newPersonId;
System.out.println(my_id);
}
});
fetch.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Person p = dao.get(my_id);
List<Person> list = dao.listAll();
int ind = list.indexOf(list.iterator());
System.out.println(p.getName());
}
});
clear.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
dao.deleteAll();
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}