Android SQLite 制作實例 part2 (Data Binding)

為什麼要用 Data Binding ?
不用 Data Binding 可以嗎?

Data Binding 可以讓你/妳用比較少程式碼來達到目地
不想要學怎麼用它也沒關係


MyDatabase.java
 package edu.android.mydatabase;  
 import android.app.ListActivity;  
 import android.content.ContentValues;  
 import android.database.Cursor;  
 import android.database.sqlite.SQLiteDatabase;  
 import android.os.Bundle;  
 import android.view.View;  
 import android.widget.ArrayAdapter;  
 import android.widget.Button;  
 import android.widget.SimpleCursorAdapter;  
 import android.widget.Spinner;  
 public class MyDatabase extends ListActivity implements TableInfo{  
      private static String[] FROM = { ID, Country, Name, };  
      private static String ORDER_BY = ID + " ASC";  
      private static int[] TO = { R.id.rid, R.id.country, R.id.name, };  
      private MySQLite mysqlite;  
      private Button submitBtn;  
      private Spinner countrySpn,nameSpn;  
      private String countrys[]={"火之國","水之國","雷之國","風之國","土之國"};  
      private String names[]={"漩渦鳴人","宇智波佐豬","大蛇丸","旗木卡卡西","自來也","春野櫻 ","我愛羅","地達羅","照美冥"  
                                    ,"黑土","艾","殺人蜂","紅蓮","手鞠","宇智波鼬","干柿鬼鮫","勘九郎","猿飛佐助"};  
      ArrayAdapter<String> adapter0,adapter1;  
   /** Called when the activity is first created. */  
   @Override  
   public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.main);  
        initInput();  
   }  
   private void initInput(){  
        mysqlite = new MySQLite(this);  
        countrySpn=(Spinner)findViewById(R.id.countrySpn);         
        adapter0 = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, countrys);  
        countrySpn.setAdapter(adapter0);  
        nameSpn=(Spinner)findViewById(R.id.nameSpn);  
        adapter1 = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, names);         
        nameSpn.setAdapter(adapter1);  
        submitBtn=(Button)findViewById(R.id.submitBtn);  
        submitBtn.setOnClickListener(new View.OnClickListener() {  
                @Override  
                public void onClick(View v) {  
                    try {  
                        insertDB(countrySpn.getSelectedItem().toString(),nameSpn.getSelectedItem().toString());  
                        Cursor cursor = SelectDB();  
                        showDB(cursor);  
                    } finally {  
                        mysqlite.close();  
                    }            
                }  
           });  
   }  
   private void insertDB(String str0, String str1) {  
        SQLiteDatabase db = mysqlite.getWritableDatabase();  
        ContentValues values = new ContentValues();  
        values.put(Country, str0);  
        values.put(Name, str1);  
        db.insertOrThrow(TABLE_NAME, null, values);  
    }  
    private Cursor SelectDB() {  
        SQLiteDatabase db = mysqlite.getReadableDatabase();  
        Cursor cursor = db.query(TABLE_NAME, FROM, null, null, null,  
           null, ORDER_BY);  
        startManagingCursor(cursor);  
        return cursor;  
    }  
    private void showDB(Cursor cursor) {  
        // data binding  
        SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, R.layout.item, cursor, FROM, TO);   
        setListAdapter(adapter);  
    }  
 }  





Output / Screenshot


加入 Toast 和 ListView


加入dialog


沒有留言:

張貼留言