【问题标题】:file explorer doesn't show any database文件资源管理器不显示任何数据库
【发布时间】:2012-04-03 16:56:57
【问题描述】:

我正在创建一个登录应用程序,其中在 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();      
    }      
  }

【问题讨论】:

  • 你能上传文件浏览器的截图,显示你的包中的数据库文件夹吗??
  • 请给我你的电子邮件地址 Shashank....
  • 我认为最终的 String uid;和最终字符串 psw;不要收集价值............
  • 如果您单击两次按钮,我肯定会遇到异常。向我们展示异常被 try catch 包围。
  • 不,我没有收到任何异常,但它显示了 toast 消息

标签: android android-database


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-31
    • 1970-01-01
    相关资源
    最近更新 更多