2013-04-05 38 views
0

我有4班。 1:數據庫處理器顯示數據庫android的一些值?

package as.d.d; 

import java.util.ArrayList; 
import java.util.List; 

import android.content.ContentValues; 
import android.content.Context; 
import android.database.Cursor; 
import android.database.sqlite.SQLiteDatabase; 
import android.database.sqlite.SQLiteDatabase.CursorFactory; 
import android.database.sqlite.SQLiteOpenHelper; 

public class DatabaseHandler extends SQLiteOpenHelper{ 


    private static final int DATABASE_VERSION = 1; 
    private static final String DATABASE_NAME = "contactsManager"; 
    private static final String TABLE_CONTACTS = "contacts"; 


    private static final String KEY_ID = "id"; 
    private static final String KEY_NAME = "name"; 
    private static final String KEY_PH_NO = "phone_number"; 



    public DatabaseHandler(Context context) { 
     super(context, DATABASE_NAME, null, DATABASE_VERSION); 
    } 

    @Override 
    public void onCreate(SQLiteDatabase db) { 
     String CREATE_CONTACTS_TABLE = "CREATE TABLE " + TABLE_CONTACTS + "(" 
       + KEY_ID + " INTEGER PRIMARY KEY," + KEY_NAME + " TEXT," 
       + KEY_PH_NO + " TEXT" + ")"; 
     db.execSQL(CREATE_CONTACTS_TABLE); 

    } 

    @Override 
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
     db.execSQL("DROP TABLE IF EXISTS " + TABLE_CONTACTS); 
     onCreate(db); 
    } 


    void addContact(StudentInfo studentInfo) { 
     SQLiteDatabase db = this.getWritableDatabase(); 

     ContentValues values = new ContentValues(); 
     values.put(KEY_NAME, studentInfo.getName()); // Contact Name 
     values.put(KEY_PH_NO, studentInfo.getPhoneNumber()); // Contact Phone 

     db.insert(TABLE_CONTACTS, null, values); 
     db.close(); 
    } 

    StudentInfo getContact(int id) { 
     SQLiteDatabase db = this.getReadableDatabase(); 

     Cursor cursor = db.query(TABLE_CONTACTS, new String[] { KEY_ID, 
       KEY_NAME, KEY_PH_NO }, KEY_ID + "=?", 
       new String[] { String.valueOf(id) }, null, null, null, null); 
     if (cursor != null) 
      cursor.moveToFirst(); 

     StudentInfo studentInfo = new StudentInfo(Integer.parseInt(cursor.getString(0)), 
       cursor.getString(1), cursor.getString(2)); 
     // return contact 
     return studentInfo; 
    } 


    public List<StudentInfo> getAllStudentInfo() { 
     List<StudentInfo> studentList = new ArrayList<StudentInfo>(); 
     String selectQuery = "SELECT * FROM " + TABLE_CONTACTS; 
     SQLiteDatabase db = this.getWritableDatabase(); 
     Cursor cursor = db.rawQuery(selectQuery, null); 

     if (cursor.moveToFirst()) { 
      do { 
       StudentInfo studentInfo = new StudentInfo(); 
       studentInfo.setID(Integer.parseInt(cursor.getString(0))); 
       studentInfo.setName(cursor.getString(1)); 
       studentInfo.setPhoneNumber(cursor.getString(2)); 
       studentList.add(studentInfo); 
      } while (cursor.moveToNext()); 
     } 

     return studentList; 
    } 


    public int updateContact(StudentInfo studentInfo) { 
     SQLiteDatabase db = this.getWritableDatabase(); 

     ContentValues values = new ContentValues(); 
     values.put(KEY_NAME, studentInfo.getName()); 
     values.put(KEY_PH_NO, studentInfo.getPhoneNumber()); 


     return db.update(TABLE_CONTACTS, values, KEY_ID + " = ?", 
       new String[] { String.valueOf(studentInfo.getID()) }); 
    }} 

2:StudentInfo

package as.d.d; 

public class StudentInfo { 



    int _id; 
    String _name; 
    String _phone_number; 


    public StudentInfo(){ 

    } 
    public StudentInfo(int id, String name, String _phone_number){ 
     this._id = id; 
     this._name = name; 
     this._phone_number = _phone_number; 

    } 

    public StudentInfo(String name, String _phone_number){ 
     this._name = name; 
     this._phone_number = _phone_number; 

    } 


    public int getID(){ 
     return this._id; 
    } 

    public void setID(int id){ 
     this._id = id; 
    } 

    public String getName(){ 
     return this._name; 
    } 

    public void setName(String name){ 
     this._name = name; 
    } 

    public String getPhoneNumber(){ 
     return this._phone_number; 
    } 

    public void setPhoneNumber(String phone_number){ 
     this._phone_number = phone_number; 
    }} 

3:添加

package as.d.d; 

import java.util.List; 
import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.util.Log; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.TextView; 
import android.widget.Toast; 

public class add extends Activity implements OnClickListener{ 


    Button b1,b2; 
    EditText e2,e3; 
    TextView t1; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.add); 

     b1=(Button)findViewById(R.id.button1); 
     b2=(Button)findViewById(R.id.button2); 
     e2=(EditText)findViewById(R.id.editText2); 
     e3=(EditText)findViewById(R.id.editText3); 
     t1=(TextView)findViewById(R.id.AtextView1); 

     b1.setOnClickListener(this); 
     b2.setOnClickListener(this); 


     DatabaseHandler db = new DatabaseHandler(this); 
     List<StudentInfo> studentInfo = db.getAllStudentInfo(); 

     for (StudentInfo cn : studentInfo){ 

      t1.setText("Id:"+(cn.getID()+1)); 
     } 
    } 

    @Override 
    public void onClick(View v) { 


     if(v==b2){ 
      startActivity(new Intent(add.this, FdActivity.class)); 
     } 
     else if(v==b1){ 

      String s2=e2.getText().toString(); 
      String s3=e3.getText().toString(); 

      if(s2.trim().equals("")||s3.trim().equals("")){ 

       Toast.makeText(getApplicationContext(), "Please Submit Student Information",Toast.LENGTH_SHORT).show(); 

       } 

      else{ 
       DatabaseHandler db = new DatabaseHandler(this); 
       Log.d("Insert: ", "Inserting .."); 
       db.addContact(new StudentInfo(s2,s3)); 
       Log.d("Reading: ", "Reading all contacts.."); 
       List<StudentInfo> studentInfo = db.getAllStudentInfo(); 
       for (StudentInfo cn : studentInfo){ 
        t1.setText("Id:"+(cn.getID()+1)); 
      }}}}} 

4:addmark

package as.d.d; 

import java.util.ArrayList; 
import java.util.List; 

import android.app.Activity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.AdapterView; 
import android.widget.AdapterView.OnItemClickListener; 
import android.widget.ArrayAdapter; 
import android.widget.AutoCompleteTextView; 
import android.widget.TextView; 
import android.widget.Toast; 

public class addmark extends Activity{ 

    AutoCompleteTextView a1; 
    TextView t1,t2; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.addmark); 

     a1=(AutoCompleteTextView)findViewById(R.id.autoCompleteTextView1); 
     t1=(TextView)findViewById(R.id.amtextView1); 
     t2=(TextView)findViewById(R.id.amtextView2); 




     DatabaseHandler db = new DatabaseHandler(this); 

     final List<StudentInfo> studentInfo = db.getAllStudentInfo(); 



     final ArrayList<String> s1 = new ArrayList<String>(); 
     final ArrayList<String> s3 = new ArrayList<String>(); 

     for (StudentInfo cn : studentInfo) { 
      s1.add(cn.getName()); 
      s3.add(cn.getPhoneNumber()); 

     } 
     ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_dropdown_item_1line,s1); 

     a1.setThreshold(1); 
     a1.setAdapter(adapter); 



     a1.setOnItemClickListener(new OnItemClickListener() { 

      @Override 
      public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, 
        long arg3) { 
} 
     }); 

在第三類(添加)我使用自動生成螺柱的Textview ent id(數字(int))和兩個文本字段,用於通過按下按鈕將學生姓名和電話號碼提交到數據庫。在此,學生證,姓名和電話號碼成功提交。第四課我使用自動完成文本視圖來顯示姓名我從類3提交。當我選擇一個名稱假設Farhan(我已經提交到數據庫中,ID是4,電話號碼是99876存儲在數據庫中),那麼我想看到兩個文本視圖中的ID和電話號碼(TextView t1 ,T2)?

回答

0

使用此查詢:

Cursor cursor = db.query(TABLE_NAME, new String[] { KEY_ID, 
      KEY_PH_NO }, KEY_NAME +"= inserted_value", null, 
      null, null); 
+0

我需要在第四類 – bhoot4242 2013-04-05 13:57:21

0

你應該實現這樣的事情:

AutoCompleteTextView actv = (AutoCompleteTextView)findViewById(R.id.actv); 
    actv.setOnItemClickListener(new OnItemClickListener() { 

     @Override 
     public void onItemClick(AdapterView<?> adapter, View arg1, int index, 
       long arg3) { 
      DatabaseHandler dh = new DatabaseHandler(); 

      TextView tv1 = (TextView)findViewById(R.id.tv1); 
      TextView tv2 = (TextView)findViewById(R.id.tv2); 

      tv1.SetText(dh.findIdbyName(arg1.getText().ToString()); 
      tv2.SetText(dh.findPhonebyName(arg1.getText().ToString()); 
     } 
    }); 

添加在數據庫Heleper:

public String findIdbyName(String arg) { 
Cursor c = db.rawQuery("SELECT id FROM TABLE_CONTACTS WHERE KEY_NAME ='"+arg+"';", null); 
return c.MoveToFirst().getString(1); 
} 
+0

不TextView的代碼工作返回c.MoveToFirst()。getString(1); tv1.SetText(dh.findIdbyName(arg1.getText()。ToString()); tv2.SetText(dh.findPhonebyName(arg1.getText()。ToString());不服用 – bhoot4242 2013-04-05 14:34:26

+0

嘿,哪部分不工作?你可以發佈logcat或你的代碼(我的近似)。這不應該是問題,所以給一些反饋,以便我們可以幫助你。 – fenix 2013-04-06 16:54:10