画面遷移、パラメータ取得、DB検索、セル風表示、etcのサンプル
package ui.flow03; import java.util.ArrayList; import java.util.HashMap; import android.app.Activity; import android.content.Intent; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.Button; import android.widget.ListView; import android.widget.SimpleAdapter; import android.widget.TextView; public class SecActivity extends Activity { private ListView list; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.sec); Intent intent = getIntent(); // パラメータ取得 String data = intent.getStringExtra("keyword"); // list = (ListView)findViewById(R.id.list); // ArrayList<HashMap<String, String>> listItem = new ArrayList<HashMap<String, String>>(); HashMap<String, String> map; map = new HashMap<String, String>(); // タイトルセット map.put("No", "No"); map.put("Name", "Name"); map.put("Tel", "Tel"); map.put("Age", "Age"); listItem.add(map); // DB接続 DatabaseHelper dbHelper = new DatabaseHelper(this); SQLiteDatabase db=dbHelper.getReadableDatabase(); String query = "SELECT No, Name, Tel, Age " + "FROM MyTable " + "WHERE Name like '%" + data + "%'"; try{ // クエリ実行 Cursor cursor = db.rawQuery(query, null); // レコードが1件以上あればtrue、レコードが0件ならfalse boolean isEof = cursor.moveToFirst(); while(isEof){ map = new HashMap<String, String>(); // getColumnIndexでカラムのインデックス(何カラム目)取得 // getStringで指定カラムの値を取得 map.put("No", cursor.getString(cursor.getColumnIndex("No"))); map.put("Name", cursor.getString(cursor.getColumnIndex("Name"))); map.put("Tel", cursor.getString(cursor.getColumnIndex("Tel"))); map.put("Age", cursor.getString(cursor.getColumnIndex("Age"))); listItem.add(map); // 次のレコードがあればtrue、なければ(今の処理が最終レコードなら)false isEof = cursor.moveToNext(); } } finally { db.close(); } // SimpleAdapter adapter = new SimpleAdapter (this.getBaseContext(), listItem, R.layout.affichageitem02, new String[] {"Name", "Tel", "Age"}, new int[] {R.id.name, R.id.tel, R.id.age}); // ListViewにセット list.setAdapter(adapter); // list.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override // どうしても警告を取り除けない事情がある場合にのみ使うアノテーション @SuppressWarnings("unchecked") // ListViewの項目がクリックされたら public void onItemClick(AdapterView<?> parent, View view, int position, long id) { HashMap<String, String> map = (HashMap<String, String>) list.getItemAtPosition(position); // インテントの定義 Intent intent = new Intent(SecActivity.this, ThirdActivity.class); // パラメータをセットする intent.putExtra("personal", map.get("Name") + ":" + map.get("Tel") + ":" + map.get("Age")); // 次画面に遷移する startActivity(intent); } }); // 検索条件表示用 TextView text02 = (TextView)findViewById(R.id.textView04_id); text02.setText("検索条件:" + data); // 戻るボタン Button btn = (Button)findViewById(R.id.button2_id); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // インテントを終了して元の画面に戻る finish(); } }); } }