2

我正在创建一个登录应用程序,其中在 EditText 中键入的数据将在单击 java 文件中的按钮时进入一个变量,然后该值将存储到我创建的 sqlite 数据库中,但是当我在 EditText 中键入值和单击按钮我没有在文件资源管理器中创建任何数据库。

这是我的代码:

import java.util.Locale;
import android.app.Activity;
import android.content.ContentValues;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class AAAActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        EditText userid = (EditText)findViewById(R.id.et_un);
        EditText password = (EditText)findViewById(R.id.et_pw);
        final String uid;
        final String pwd;

        uid = userid.getText().toString();
        pwd = password.getText().toString();

        Button btn = (Button)findViewById(R.id.btn_login);
        btn.setOnClickListener(new OnClickListener(){
        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            InsertUser(uid, pwd);
            show();                 
            }
           });
    }    

    public void InsertUser(String user_name, String password){
        //SQLiteDatabase db;
        SQLiteDatabase db;
        db = openOrCreateDatabase("TestData.db", SQLiteDatabase.CREATE_IF_NECESSARY,  
              null);

       try{

           db.setVersion(1);
           db.setLocale(Locale.getDefault());
           db.setLockingEnabled(true); 
           /*final String CREATE_TABLE_USERS = "CREATE TABLE users (" + "id INTEGER
                     PRIMARY KEY AUTOINCREMENT,"+" LoginName text not null, Password 
                                  text not null);"; */          
           String CREATE_TABLE_USERS = "CREATE TABLE users (" + "id INTEGER PRIMARY KEY
              AUTOINCREMENT,"+" LoginName text not null, Password text not null);";

        db.execSQL(CREATE_TABLE_USERS);

        ContentValues values = new ContentValues();
        values.put("LoginName", user_name);
        values.put("Password", password);
        db.insert("users", null, values);
          }
       catch(Exception e){
             }
        }
     public void show(){

    Toast toast=Toast.makeText(this, "your data is received", Toast.LENGTH_SHORT );
    toast.show();      
    }      
  }
4

1 回答 1

0

我为该类的不同功能创建了一个新的 DBAdapter 类,例如打开、关闭、更新插入和检索数据。然后我创建了另一个类来访问布局资源,我在按钮单击事件上调用 DBAdapter 类的方法。

在我的代码的上一篇文章中,我发现每次将数据插入数据库时​​,我都会创建一个新数据库,这就是我认为的问题。现在我将所有方法分开并单独调用它们。

于 2012-03-22T06:34:17.417 回答