2013-07-08 75 views
2

帶保存和顯示按鈕的登錄頁面我想顯示使用toast保存在sqlite中的數據...問題出現在顯示代碼中,請幫助我......我在此處發佈我的代碼。 ..我是初學者顯示存儲在sqlitedatabase中的數據


MainActivity.java

package com.example.pagevalidation; 
    import com.example.pagevalidation.*; 
    import android.os.Bundle; 
    import android.view.View; 
    import android.view.View.OnClickListener; 
    import android.app.Activity; 
    import android.app.AlertDialog; 
    import android.content.Context; 
    import android.content.Intent; 
    import android.database.Cursor; 
    import android.database.sqlite.SQLiteDatabase; 
    import android.view.Menu; 
    import android.widget.Button; 
    import android.widget.EditText; 
    import android.widget.Toast; 

    public class MainActivity extends Activity { 

     SQLiteDatabase db; 

     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_main); 
      EditText name = (EditText) findViewById(R.id.editText1); 
      String uname = name.getText().toString(); 

      EditText password = (EditText) findViewById(R.id.editText2); 
      String pass = password.getText().toString(); 

     } 

     public void savedata(View view) { 

      EditText name = (EditText) findViewById(R.id.editText1); 
      String uname = name.getText().toString(); 

      EditText password = (EditText) findViewById(R.id.editText2); 
      String pass = password.getText().toString(); 

      DatabaseHandler dh = new DatabaseHandler(this); 
      dh.insert(uname, pass); 
      // Toast.makeText(MainActivity.class,"record inserted",3000).show(); 
      Toast.makeText(getBaseContext(), "Record Saved", Toast.LENGTH_LONG) 
        .show(); 

      // TODO Auto-generated method stub 

     } 

     public void displaydata() { 
      DatabaseHandler dh = new DatabaseHandler(this); 
    Cursor c= dh.getAll(); 
      if (c.moveToFirst()) { 
      do { 
        Toast.makeText(this,"id: " + c.getString(0) + "\n" + "name: " + c.getString(1)+ "\n" + "password: " + c.getString(2),Toast.LENGTH_LONG).show(); 

      } while (c.moveToNext()); 

      } 
      db.close(); 
     } 


     @Override 
     public boolean onCreateOptionsMenu(Menu menu) { 
      // Inflate the menu; this adds items to the action bar if it is present. 
      getMenuInflater().inflate(R.menu.main, menu); 
      return true; 
     } 

    } 



Databasehandler class for handling database 


DatabaseHandler.java 


package com.example.pagevalidation; 

import java.util.ArrayList; 
import java.util.HashMap; 

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

import android.database.sqlite.SQLiteDatabase.CursorFactory; 

public class DatabaseHandler extends SQLiteOpenHelper { 


    private static final int DATABASE_VERSION = 1; 


    private static final String DATABASE_NAME = "loginManager"; 


    private static final String TABLE_LOGIN = "login"; 


    private static final String KEY_ID = "id"; 
    private static final String KEY_NAME = "name"; 
    private static final String KEY_PASS = "password"; 

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


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

    } 

    @Override 
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 

     // db.execSQL("DROP TABLE IF EXISTS " + TABLE_LOGIN); 


     // onCreate(db); 
    } 

    void insert(String name,String password) { 
     SQLiteDatabase db = this.getWritableDatabase(); 

     ContentValues values = new ContentValues(); 
     values.put(KEY_NAME, name); 
     values.put(KEY_PASS, password); 
     db.insert(TABLE_LOGIN, null, values); 
     db.close(); 
    } 

    /* public Cursor getAll() { 
     return(getReadableDatabase() 
     .rawQuery("SELECT id, name, password FROM TABLE_LOGIN", 
     null)); 
     }*/ 
    public Cursor getAll() 
    { 
     SQLiteDatabase db = this.getReadableDatabase(); 
     Cursor c = db.rawQuery("select * from TABLE_LOGIN", null); 

     return c; 

    } 


    } 
+0

[請參閱參考鏈接](http://chintankhetiya.wordpress.com/) –

回答

0

我首先看到的是,你不能從任何地方調用displaydata()方法。

末FO您的onCreate()方法添加:

onCreate(){ 
    ... 
    displayData(); 
} 

是你是一個初學者,那麼你應該看看到文檔有關的活動是如何工作的,基本上他們有一些方法,你覆蓋它們添加活動的行爲(如onCreate())。不要被覆蓋的方法(我的意思是,你創建這些方法)需要從某個地方調用。

+0

onclick顯示按鈕我在activity_main.xml中調用displaydata()方法 – user2508797

相關問題