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 に答える