有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在创建新实例SQLITE时出错

创建新实例以将数据写入数据库SQLlite时出错

这是我的数据库类的代码

    package com.example.tttt;

import 安卓.content.ContentValues;
import 安卓.content.Context;
import 安卓.database.Cursor;
import 安卓.database.SQLException;
import 安卓.database.sqlite.SQLiteDatabase;
import 安卓.database.sqlite.SQLiteOpenHelper;


public class info {

    public static final String key_nom = "nom_personne";
    public static final String key_id = "id_personne";
    public static final String key_prenom = "prenom_personne";
    private static final String DATABASE_NAME = "infodb";
    private static final String DATABASE_TABLE = "infotable";
    private static final int DATABASE_VERSION = 1 ;
    private DbHelper ourHelper;
    private Context ourContext ;
    private SQLiteDatabase ourDatabase ;

    private static class DbHelper extends SQLiteOpenHelper {

        public DbHelper(Context context) {
            super(context, DATABASE_NAME,null , DATABASE_VERSION );
            // TODO Auto-generated constructor stub
        }

        @Override
        public void onCreate(SQLiteDatabase db) {
            // TODO Auto-generated method stub
            db.execSQL( "CREATE TABLE " + DATABASE_TABLE + " (" +
        key_id  + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
        key_nom + " TEXT NOT NULL, " +
        key_prenom + " TEXT NOT NULL);"

                    );

        }

        @Override
        public void onUpgrade(SQLiteDatabase db, int arg1, int arg2) {
            // TODO Auto-generated method stub
            db.execSQL("DROP TABLE IF EXISTS " + DATABASE_TABLE);
            onCreate(db);
        }


}
public info open() throws SQLException{
    ourHelper = new DbHelper(ourContext);
    ourDatabase = ourHelper.getWritableDatabase();
    return this;
}
    public void close(){
    ourHelper.close();
}
    public long createEntry(String name, String prenom) {
        // TODO Auto-generated method stub
        ContentValues cv = new ContentValues();
        cv.put(key_nom, name);
        cv.put(key_prenom, prenom);
        return ourDatabase.insert(DATABASE_TABLE, null, cv);

    }

在我的课堂活动中,我写了

 info entry = new info(this);
            entry.open();
            entry.createEntry(name , prenom );
            entry.close();

我在^{上出错 消息错误:“构造函数信息(new View.OnClickListener(){})未定义”

当我更改为infoentry = new info(intro.this);

我得到:“构造函数信息(简介)未定义”

我尝试从用户那里获取信息并将其发送到数据库的完整介绍活动

package com.example.tttt;

import com.example.tttt.R.layout;

import 安卓.app.Activity;
import 安卓.app.Dialog;
import 安卓.content.Intent;
import 安卓.os.Bundle;
import 安卓.os.DropBoxManager.Entry;
import 安卓.view.View;
import 安卓.view.View.OnClickListener;
import 安卓.view.ViewGroup.LayoutParams;
import 安卓.widget.Button;
import 安卓.widget.EditText;
import 安卓.widget.TextView;

public class intro extends Activity  {
Button sqlupdate,sqlview,sqlsearch;
EditText sqlnom, sqlprenom,sqltextsearch ;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
      setContentView(R.layout.intro);
      sqlnom = (EditText)findViewById(R.id.nomenter);
      sqlprenom = (EditText)findViewById(R.id.prenomenter);
      sqlupdate =        (Button) findViewById(R.id.button1);
      sqlview =        (Button) findViewById(R.id.button2);
    //  sqlsearch =        (Button) findViewById(R.id.button3);
   //   sqltextsearch = (EditText)findViewById(R.id.editText1);


      sqlupdate.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            boolean diditwork = true ;

            try{
            String name = sqlnom.getText().toString();
            String prenom = sqlprenom.getText().toString(); 

            entry = new info();
        entry.open();
        entry.createEntry(name , prenom );
        entry.close();

            }catch (Exception e ){

          diditwork = false ;
          String error = e.toString();
          Dialog d = new Dialog(intro.this); 
            d.setTitle(" merde ");
            TextView tv = new TextView(intro.this);
            tv.setText(error);
            d.setContentView(tv);
            d.show();
            }finally{
         if (diditwork){
            Dialog d = new Dialog(intro.this); 
            d.setTitle(" okkk ");
            TextView tv = new TextView(intro.this);
            tv.setText(" ok yes ");
            d.setContentView(tv);
            d.show();
         }

            }
        }


    });
      sqlview.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            Intent open = new Intent("安卓.intent.action.SQLVIEW");
            startActivity(open);
        }



    });


    sqlsearch.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
     /*String s = sqltextsearch.getText().toString();

            info se = new info();
            se.open();
            String returne = se.search();
       */     




        }
    });


    }


}

共 (2) 个答案

  1. # 1 楼答案

    在类Info中,没有带有类型为Intro

    如果您真的需要在class Info中有class Intro的实例,请创建一个

    public Info(Intro intro){
        }
    

    否则,在不传递任何参数的情况下创建构造函数

     Info entry = new Info(this);
    

    始终尝试遵循命名约定,这不是一个好的编程方式http://www.oracle.com/technetwork/java/codeconv-138413.html

  2. # 2 楼答案

    必须初始化不带参数的info类:

    info entry = new info();
    

    顺便说一句,在类名中通常写第一个大写字母:Info

    而且。如果info中没有更多的代码,那么应用程序将在这里抛出NullPointerException{}