android - 在 Android app_project 中读写 SQLite 数据库

标签 android

我在 LogCat 上有一个 java.lang.NullPointer 错误,但我不知道为什么。似乎错误在于第二个 OnClick 过程。谁能帮帮我??

package com.example.cinemaodeon;


 import com.example.cinemaodeon.Main;



public class Main extends Activity {

private DatabaseHelper DatabaseHelper;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);


    setContentView(R.layout.main_layout);

    final Toast toast = Toast.makeText(this,
            "Il nome utente non è presente!!! registra un nuovo nome utente!",
            Toast.LENGTH_LONG);

    final Toast toast2 = Toast.makeText(this,
            "Il nome utente è già presente!!!Puoi accedere con questo nome utente!",
            Toast.LENGTH_LONG);


    Button btnGO = (Button) findViewById(R.id.main_btnentra);
     btnGO.setOnClickListener(new OnClickListener(){    
        @Override    
        public void onClick(View arg0) {    

            SQLiteDatabase db = DatabaseHelper.getReadableDatabase();
            String[] columns = { "_id_user" };
            Cursor cursor = db.query("users", columns, null, null, null, null, null);
            String[] result = new String[]{};
            int count = cursor.getCount();
            while (cursor.moveToNext()) {
                result[count]=cursor.getString(0);
                count=count+1;
                }

            EditText editusername =(EditText) findViewById(R.id.main_editusername);
            final String username = editusername.getText().toString();

            for (int i = 0; i < count; i++) {
            if (username==result[count]){

                Intent openProgrammazione = new Intent(Main.this,Programmazione.class);  
                startActivity(openProgrammazione);  

                }
            }           
            toast.show();   
            }
        });    


     Button btnReg = (Button) findViewById(R.id.main_btnregistra);
     btnReg.setOnClickListener(new OnClickListener(){    

似乎错误在下面的 OnClick 过程中,可能是 databaseHelper 的定义有问题

        @Override    
        public void onClick(View arg0) {    

            SQLiteDatabase db = DatabaseHelper.getReadableDatabase();
            String[] columns = { "_id_user" };
            Cursor cursor = db.query("users", columns, null, null, null, null, null);
            String[] result = new String[]{};
            int count = cursor.getCount();
            while (cursor.moveToNext()) {
                result[count]=cursor.getString(0);
                count=count+1;
                }


            EditText editusername =(EditText) findViewById(R.id.main_editusername_registra);
            final String username = editusername.getText().toString();


            for (int i = 0; i < count; i++) {
            if (username==result[count]){

                toast2.show();
                }
            }           
                SQLiteDatabase dbW = DatabaseHelper.getWritableDatabase();
                ContentValues values = new ContentValues();
                values.put("_id_user", username);
                @SuppressWarnings("unused")
                long id = dbW.insert("users", null, values);

            Intent openProgrammazione = new Intent(Main.this,Programmazione.class);  
            startActivity(openProgrammazione);  
            }

     });    


}

最佳答案

您还没有初始化 DatabaseHelper DatabaseHelper

尝试初始化它

例如:DatabaseHelper DatabaseHelper=new DatabaseHelper();

关于android - 在 Android app_project 中读写 SQLite 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21878484/

相关文章:

Android 命令转换为 Swift 4 以用于 Firebase Analytics

java - 在另一个 Fragment 中创建 ArFragment 对象

java - 获取 Mockito 错误 : "Wanted but not invoked... actually, there were zero interactions with this mock"

android - 使用 c2dm 一次发送多个推送

android - 在文件浏览中找不到文件夹

android - ProtocolException:预期的 ':status' header 不存在

android - 如何以编程方式检测android中可用的底部软导航栏?

android - 我如何将 Flutter (Dart) 连接到我的 Oracle 服务器?有人试过这个吗?

android - DataAdapter 类型未定义方法 getActivity()

java - 转换字符串时 org.json.JSON.typeMismatch