たぼさんの部屋

いちょぼとのんびり

T330 MDBHelperライブラリを使ってリストビューに表示(自動更新)

f:id:donsuka_kk:20130108030032p:plain

Main.java

 package com.efolab.t330;

import java.util.List;
import java.util.Map;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;

import com.efolab.lib.layouts.Layout3;
import com.efolab.mdbhelper.MDBHelper;

public class Main extends Activity {

	Layout3 layout;
	Context context;
	MDBHelper helper;
	
	//ListView
	ListView lv;
	SimpleAdapter adapter;
	List<Map<String , Object>> list;
	
	TextView tv0;
	Button btn0;
	
	@Override
	public void onCreate(Bundle savedInstanceState) {
	    super.onCreate(savedInstanceState);
	
	    // TODO Auto-generated method stub
	    context = getApplicationContext();
	    layout = new Layout3(context);
	    setContentView(layout);
	    
	    /* MDBHelper */
	    final String CREATE_TABLE = "CREATE TABLE " + MDBHelper.TABLE_NAME + " ("
	    		+"seq INTEGER PRIMARY KEY AUTOINCREMENT,"
	    		+"data TEXT"
	    		+");";
	    		
	    final int VERSION = 2;
	    helper = new MDBHelper(context, CREATE_TABLE , VERSION);
	    list = helper.selectAll();
	    
	    
	    lv = new ListView(context);
	    int resources = R.layout.raw;
	    String[] from = {"seq" , "data"};
	    int[] to = {R.id.textView1 , R.id.textView2};
	    adapter = new SimpleAdapter(context, list, resources, from, to);
	    lv.setAdapter(adapter);
	    
	    
	    tv0 = new TextView(context);
	    String text = "データ件数は"+helper.getCount();
	    tv0.setText(text);
	    
	    btn0 = new Button(context);
	    btn0.setText("データを追加して、リストビューを更新");
	    btn0.setOnClickListener(l);
	    
	    //addView
	    layout.getLayoutHeader().addView(btn0);
	    layout.getLayoutMain().addView(lv);
	    layout.getLayoutFooter().addView(tv0);
	}
	OnClickListener l = new OnClickListener() {
		int counter = 0;
		@Override
		public void onClick(View v) {
			// TODO Auto-generated method stub
			String data = "hoge_" + counter++;
			String sql = "insert into " + MDBHelper.TABLE_NAME + " ('data') values ('" + data + "');";
			helper.insert(sql);
			
			//select
			list.addAll(helper.selectLast());
			adapter.notifyDataSetInvalidated();
			tv0.setText("データ更新"+helper.getCount());
		}
	};

}