Android 使用SharedReferences向SQLite插入值时出错

Android 使用SharedReferences向SQLite插入值时出错,android,sqlite,Android,Sqlite,我不熟悉共享数据引用和SQLite 我已经参考一个在线示例实现了SharedReferences 当我调试expect配置文件时(我得到配置文件的“默认”值),当我从我的设备插入时,所有其他值都是正确的 但当我按下按钮时,它会抛出一些错误 我在谷歌上搜索,但没有得到预期的答案。 请帮助我理解我在哪里犯了错误 DBHandler类 package com.example.app; import java.io.ByteArrayOutputStream; import java.io.IOE

我不熟悉共享数据引用和SQLite

我已经参考一个在线示例实现了SharedReferences

当我调试expect配置文件时(我得到配置文件的“默认”值),当我从我的设备插入时,所有其他值都是正确的
但当我按下按钮时,它会抛出一些错误

我在谷歌上搜索,但没有得到预期的答案。
请帮助我理解我在哪里犯了错误

DBHandler类

  package com.example.app;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.sql.Blob;
import java.sql.SQLData;

import android.R.raw;
import android.app.Activity;
import android.app.Application;
import android.content.ContentValues;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.graphics.Bitmap;
import android.graphics.Bitmap.CompressFormat;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.preference.PreferenceManager.OnActivityResultListener;
import android.text.StaticLayout;
import android.util.Log;
import android.widget.Toast;

public class DBHandler extends SQLiteOpenHelper{


    public static int VERSION_NAME=1;
    public static String DATABASE_NAME="altaf";
    public static String TABLE_REGISTER="register";
    public static String PERSON_ID="_PersonId";
    public static String PERSON_FNAME="FirstName";
    public static String PERSON_EMAIL="EmaiId";
    public static String PERSON_PASSWORD="Password";
    public static String PERSON_PHOTO="Photo";
    public static String PERSON_GENDER="Gender";
    public static String PERSON_COUNTRY="Country";
    public static String PERSON_STATE="State";
    public static String PERSON_CITY="City";
    public static String PERSON_S_QUE="Squestion";
    public static String PERSON_DOB="dob";
    public static String PERSON_UNAME="Uname";



    Context context;

    public DBHandler(Context context) {
        super(context, DATABASE_NAME, null, VERSION_NAME);
        // TODO Auto-generated constructor stub


    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        // TODO Auto-generated method stub
        try{
        String create_table="CREATE TABLE " + TABLE_REGISTER + "(" + PERSON_ID + " INTEGER PRIMARY KEY AUTOINCREMENT," + PERSON_FNAME + " TEXT NOT NULL," + PERSON_EMAIL + " TEXT NOT NULL," + PERSON_PASSWORD + " TEXT NOT NULL," + PERSON_PHOTO + " blob not null," + PERSON_GENDER + " TEXT NOT NULL," + PERSON_COUNTRY + " TEXT NOT NULL," + PERSON_STATE + " TEXT NOT NULL," + PERSON_CITY + " TEXT NOT NULL," + PERSON_S_QUE + " TEXT NOT NULL," + PERSON_DOB + " DATE," + PERSON_UNAME + " TEXT NOT NULL )";
        db.execSQL(create_table);
        }
        catch(Exception e)
        {
            Log.e("failed to create table", e.toString());

        }
    }

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


    public void insert(String fname,String email,String pwd,String profile,String gender,String country,String state,String city,String sec_que,String dob,String uname) throws SQLException{

        SQLiteDatabase db=this.getWritableDatabase();
        ContentValues cv=new ContentValues();
        cv.put(PERSON_FNAME, fname);
        cv.put(PERSON_EMAIL, email);
        cv.put(PERSON_PASSWORD, pwd);
        cv.put(PERSON_PHOTO, profile);
        cv.put(PERSON_GENDER, gender);
        cv.put(PERSON_COUNTRY, country);
        cv.put(PERSON_STATE, state);
        cv.put(PERSON_CITY, city);
        cv.put(PERSON_COUNTRY, sec_que);
        cv.put(PERSON_STATE, dob);
        cv.put(PERSON_CITY, uname);
        db.insert(TABLE_REGISTER, null, cv);

        db.close();}
package com.example.app;

import java.io.ByteArrayOutputStream;
import java.io.UnsupportedEncodingException;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.provider.MediaStore;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.ImageView;
import android.widget.RadioButton;
import android.widget.Toast;



    public class reg1 extends

     Activity{

        public static String GEENDER="gender";
        public static String imgDecodableString="imgDecodableStringr";
        //public static String GEENDER="gender";
        public static int RESULT_LOAD_IMG = 1;
        Intent data ;
        ImageView imageView;
        Button register1;

        Uri selectedImage ;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);

        setContentView(R.layout.reg_1);
        imageView=(ImageView)findViewById(R.id.img_select);
        register1=(Button)findViewById(R.id.b_r1_add);


        SharedPreferences sp1=getApplication().getSharedPreferences("pref", MODE_PRIVATE);
        final Editor editor=sp1.edit();
        imageView.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub

                loadimagefrmgallery(v);

            }
        });

        final RadioButton female=(RadioButton)findViewById(R.id.imageView1);
        final RadioButton male=(RadioButton)findViewById(R.id.imageView2);
        male.setOnCheckedChangeListener(new OnCheckedChangeListener() {

            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                // TODO Auto-generated method stub


                if(male.isChecked())
                {
                    male.setChecked(true);
                    GEENDER="male";
                    female.setChecked(false);
                }

            }
        });
        female.setOnCheckedChangeListener(new  OnCheckedChangeListener() {

            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                // TODO Auto-generated method stub

                if(female.isChecked())
                {
                    female.setChecked(true);
                    GEENDER="female";
                    male.setChecked(false);
                }
            }
        });



        register1.setOnClickListener(new OnClickListener() {

            @SuppressWarnings("static-access")
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub

                DBHandler handler=new DBHandler(getApplicationContext());
                SQLiteDatabase db=handler.getWritableDatabase();
                Bitmap bitmap=BitmapFactory.decodeFile(imgDecodableString);
                // convert bitmap to byte
                ByteArrayOutputStream stream = new ByteArrayOutputStream();
                bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);
                byte imageInByte[] = stream.toByteArray();

                String image = null;
                try {
                    image = new String(imageInByte, "UTF");
                } catch (UnsupportedEncodingException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }



                String PERSON_PHOTO="Photo";
                String PERSON_GENDER="Gender";


                editor.putString(PERSON_PHOTO, image);
                editor.putString(PERSON_GENDER, GEENDER);
                editor.apply();
                Toast.makeText(getApplicationContext(),  "moving", Toast.LENGTH_SHORT).show();
                Intent i=new Intent(reg1.this,reg2.class);
                startActivity(i);

            }
        });


    }
    package com.example.app;

import java.util.ArrayList;

import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.Spinner;
import android.widget.Toast;
import android.widget.AdapterView.OnItemSelectedListener;

public class reg2 extends Activity{

    Spinner s_con,s_stat,s_ct;
    Button register2;
    public static String country1,state1,city1;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);

        setContentView(R.layout.reg_2);

        s_con=(Spinner)findViewById(R.id.r_spin_con);
        s_stat=(Spinner)findViewById(R.id.r_spin_stat);
        s_ct=(Spinner)findViewById(R.id.r_spin_ct);
        register2=(Button)findViewById(R.id.b_r2_add);

        SharedPreferences sp2=getApplication().getSharedPreferences("pref", MODE_PRIVATE);
        final Editor editor=sp2.edit();


        ArrayList<String>a=new ArrayList<String>();
        ArrayList<String>a1=new ArrayList<String>();
        ArrayList<String>a2=new ArrayList<String>();
        a.add("India");
        a.add("England");
        a.add("USA");
        a.add("Pakistan");
        a1.add("Panjab");
        a1.add("gujarat");
        a1.add("Berkshire");
        a2.add("surat");
        a2.add("great manchester");
        a2.add("london");


        final ArrayAdapter<String>adapter1=new ArrayAdapter<String>(this, R.layout.support_simple_spinner_dropdown_item,a1);
        final ArrayAdapter<String>adapter2=new ArrayAdapter<String>(this, R.layout.support_simple_spinner_dropdown_item,a2);
        final ArrayAdapter<String>adapter=new ArrayAdapter<String>(this, R.layout.support_simple_spinner_dropdown_item,a);
        s_con.setAdapter(adapter);
        s_stat.setAdapter(adapter1);
        s_ct.setAdapter(adapter2);

        s_con.setOnItemSelectedListener(new  OnItemSelectedListener() {

            @Override
            public void onItemSelected(AdapterView<?> parent, View view,
                    int position, long id) {
                // TODO Auto-generated method stub


                country1=parent.getItemAtPosition(position).toString();
                Toast.makeText(getApplicationContext(), country1, Toast.LENGTH_SHORT).show();

            }

            @Override
            public void onNothingSelected(AdapterView<?> parent) {
                // TODO Auto-generated method stub

            }
        });

        s_stat.setOnItemSelectedListener(new OnItemSelectedListener() {

            @Override
            public void onItemSelected(AdapterView<?> parent, View view,
                    int position, long id) {
                // TODO Auto-generated method stub
                state1=parent.getItemAtPosition(position).toString();
                Toast.makeText(getApplicationContext(), state1, Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onNothingSelected(AdapterView<?> parent) {
                // TODO Auto-generated method stub

            }
        });
        s_ct.setOnItemSelectedListener(new OnItemSelectedListener() {

            @Override
            public void onItemSelected(AdapterView<?> parent, View view,
                    int position, long id) {
                // TODO Auto-generated method stub

                 city1=parent.getItemAtPosition(position).toString();
                 Toast.makeText(getApplicationContext(), city1, Toast.LENGTH_SHORT).show();

            }


            @Override
            public void onNothingSelected(AdapterView<?> parent) {
                // TODO Auto-generated method stub

            }
        });







        register2.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                DBHandler handler=new DBHandler(getApplicationContext());
                SQLiteDatabase db=handler.getWritableDatabase();



                String PERSON_COUNTRY="Country";
                String PERSON_STATE="State";
                String PERSON_CITY="City";


                editor.putString(PERSON_COUNTRY, country1);
                editor.putString(PERSON_STATE, state1 );
                editor.putString(PERSON_CITY, city1 );
                editor.apply();

                Toast.makeText(getApplicationContext(), "moving", Toast.LENGTH_SHORT).show();
                Intent i=new Intent(reg2.this,reg3.class);
                startActivity(i);

            }
        });

}}
    package com.example.app;

import java.io.IOException;
import java.util.ArrayList;

import android.R.integer;
import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.Toast;

public class reg3 extends Activity {

    Spinner s_sq;
    EditText dob,unm;
    Button register3;
    public static String PREF="pref";
    public static String def_val="default";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.reg_3);

        s_sq=(Spinner)findViewById(R.id.r_spin_sq);
        dob=(EditText) findViewById(R.id.r_e_dob);
        unm=(EditText) findViewById(R.id.editText1);
        register3=(Button)findViewById(R.id.b_add3);
        ArrayList<String>a=new ArrayList<String>();
        final ArrayAdapter<String>adapter=new ArrayAdapter<String>(this, R.layout.support_simple_spinner_dropdown_item,a);
        a.add("when were you born?");
        a.add("what is your nick name?");
        a.add("what is your childhood name");
        a.add("what city your parents were met");
        a.add("what is your city name");
        s_sq.setAdapter(adapter);

        final SharedPreferences pref=getApplication().getSharedPreferences(PREF, MODE_PRIVATE);
        final SharedPreferences pref1=getApplication().getSharedPreferences(PREF, MODE_PRIVATE);
        final SharedPreferences pref2=getApplication().getSharedPreferences(PREF, MODE_PRIVATE);


        register3.setOnClickListener(new OnClickListener() {

            @SuppressWarnings("static-access")
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                DBHandler handler=new DBHandler(getApplicationContext());
                SQLiteDatabase db=handler.getWritableDatabase();
                String dob1=dob.getText().toString();
                String uname=unm.getText().toString();
                String sec_que=s_sq.getSelectedItem().toString();

                String PERSON_FNAME="FirstName";
                String PERSON_EMAIL="EmaiId";
                String PERSON_PASSWORD="Password";
                String PERSON_PHOTO="Photo";
                String PERSON_GENDER="Gender";
                String PERSON_COUNTRY="Country";
                String PERSON_STATE="State";
                String PERSON_CITY="City";


                String fname=pref.getString(PERSON_FNAME, def_val);
                String email=pref.getString(PERSON_EMAIL, def_val);
                String pwd=pref.getString(PERSON_PASSWORD, def_val);
                String profile=pref1.getString(PERSON_PHOTO, def_val);
                String gender=pref1.getString(PERSON_GENDER, def_val);
                String country=pref2.getString(PERSON_COUNTRY, def_val);
                String state=pref2.getString(PERSON_STATE, def_val);
                String city=pref2.getString(PERSON_CITY, def_val);

                handler.insert(fname, email, pwd, profile, gender, country, state, city, sec_que, dob1, uname);


                Intent i=new Intent(reg3.this,home.class);
                startActivity(i);

                Toast.makeText(getApplicationContext(),"Registered", Toast.LENGTH_LONG).show();
            }
        });

    }

}
主要活动类

reg1类

  package com.example.app;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.sql.Blob;
import java.sql.SQLData;

import android.R.raw;
import android.app.Activity;
import android.app.Application;
import android.content.ContentValues;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.graphics.Bitmap;
import android.graphics.Bitmap.CompressFormat;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.preference.PreferenceManager.OnActivityResultListener;
import android.text.StaticLayout;
import android.util.Log;
import android.widget.Toast;

public class DBHandler extends SQLiteOpenHelper{


    public static int VERSION_NAME=1;
    public static String DATABASE_NAME="altaf";
    public static String TABLE_REGISTER="register";
    public static String PERSON_ID="_PersonId";
    public static String PERSON_FNAME="FirstName";
    public static String PERSON_EMAIL="EmaiId";
    public static String PERSON_PASSWORD="Password";
    public static String PERSON_PHOTO="Photo";
    public static String PERSON_GENDER="Gender";
    public static String PERSON_COUNTRY="Country";
    public static String PERSON_STATE="State";
    public static String PERSON_CITY="City";
    public static String PERSON_S_QUE="Squestion";
    public static String PERSON_DOB="dob";
    public static String PERSON_UNAME="Uname";



    Context context;

    public DBHandler(Context context) {
        super(context, DATABASE_NAME, null, VERSION_NAME);
        // TODO Auto-generated constructor stub


    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        // TODO Auto-generated method stub
        try{
        String create_table="CREATE TABLE " + TABLE_REGISTER + "(" + PERSON_ID + " INTEGER PRIMARY KEY AUTOINCREMENT," + PERSON_FNAME + " TEXT NOT NULL," + PERSON_EMAIL + " TEXT NOT NULL," + PERSON_PASSWORD + " TEXT NOT NULL," + PERSON_PHOTO + " blob not null," + PERSON_GENDER + " TEXT NOT NULL," + PERSON_COUNTRY + " TEXT NOT NULL," + PERSON_STATE + " TEXT NOT NULL," + PERSON_CITY + " TEXT NOT NULL," + PERSON_S_QUE + " TEXT NOT NULL," + PERSON_DOB + " DATE," + PERSON_UNAME + " TEXT NOT NULL )";
        db.execSQL(create_table);
        }
        catch(Exception e)
        {
            Log.e("failed to create table", e.toString());

        }
    }

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


    public void insert(String fname,String email,String pwd,String profile,String gender,String country,String state,String city,String sec_que,String dob,String uname) throws SQLException{

        SQLiteDatabase db=this.getWritableDatabase();
        ContentValues cv=new ContentValues();
        cv.put(PERSON_FNAME, fname);
        cv.put(PERSON_EMAIL, email);
        cv.put(PERSON_PASSWORD, pwd);
        cv.put(PERSON_PHOTO, profile);
        cv.put(PERSON_GENDER, gender);
        cv.put(PERSON_COUNTRY, country);
        cv.put(PERSON_STATE, state);
        cv.put(PERSON_CITY, city);
        cv.put(PERSON_COUNTRY, sec_que);
        cv.put(PERSON_STATE, dob);
        cv.put(PERSON_CITY, uname);
        db.insert(TABLE_REGISTER, null, cv);

        db.close();}
package com.example.app;

import java.io.ByteArrayOutputStream;
import java.io.UnsupportedEncodingException;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.provider.MediaStore;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.ImageView;
import android.widget.RadioButton;
import android.widget.Toast;



    public class reg1 extends

     Activity{

        public static String GEENDER="gender";
        public static String imgDecodableString="imgDecodableStringr";
        //public static String GEENDER="gender";
        public static int RESULT_LOAD_IMG = 1;
        Intent data ;
        ImageView imageView;
        Button register1;

        Uri selectedImage ;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);

        setContentView(R.layout.reg_1);
        imageView=(ImageView)findViewById(R.id.img_select);
        register1=(Button)findViewById(R.id.b_r1_add);


        SharedPreferences sp1=getApplication().getSharedPreferences("pref", MODE_PRIVATE);
        final Editor editor=sp1.edit();
        imageView.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub

                loadimagefrmgallery(v);

            }
        });

        final RadioButton female=(RadioButton)findViewById(R.id.imageView1);
        final RadioButton male=(RadioButton)findViewById(R.id.imageView2);
        male.setOnCheckedChangeListener(new OnCheckedChangeListener() {

            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                // TODO Auto-generated method stub


                if(male.isChecked())
                {
                    male.setChecked(true);
                    GEENDER="male";
                    female.setChecked(false);
                }

            }
        });
        female.setOnCheckedChangeListener(new  OnCheckedChangeListener() {

            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                // TODO Auto-generated method stub

                if(female.isChecked())
                {
                    female.setChecked(true);
                    GEENDER="female";
                    male.setChecked(false);
                }
            }
        });



        register1.setOnClickListener(new OnClickListener() {

            @SuppressWarnings("static-access")
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub

                DBHandler handler=new DBHandler(getApplicationContext());
                SQLiteDatabase db=handler.getWritableDatabase();
                Bitmap bitmap=BitmapFactory.decodeFile(imgDecodableString);
                // convert bitmap to byte
                ByteArrayOutputStream stream = new ByteArrayOutputStream();
                bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);
                byte imageInByte[] = stream.toByteArray();

                String image = null;
                try {
                    image = new String(imageInByte, "UTF");
                } catch (UnsupportedEncodingException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }



                String PERSON_PHOTO="Photo";
                String PERSON_GENDER="Gender";


                editor.putString(PERSON_PHOTO, image);
                editor.putString(PERSON_GENDER, GEENDER);
                editor.apply();
                Toast.makeText(getApplicationContext(),  "moving", Toast.LENGTH_SHORT).show();
                Intent i=new Intent(reg1.this,reg2.class);
                startActivity(i);

            }
        });


    }
    package com.example.app;

import java.util.ArrayList;

import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.Spinner;
import android.widget.Toast;
import android.widget.AdapterView.OnItemSelectedListener;

public class reg2 extends Activity{

    Spinner s_con,s_stat,s_ct;
    Button register2;
    public static String country1,state1,city1;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);

        setContentView(R.layout.reg_2);

        s_con=(Spinner)findViewById(R.id.r_spin_con);
        s_stat=(Spinner)findViewById(R.id.r_spin_stat);
        s_ct=(Spinner)findViewById(R.id.r_spin_ct);
        register2=(Button)findViewById(R.id.b_r2_add);

        SharedPreferences sp2=getApplication().getSharedPreferences("pref", MODE_PRIVATE);
        final Editor editor=sp2.edit();


        ArrayList<String>a=new ArrayList<String>();
        ArrayList<String>a1=new ArrayList<String>();
        ArrayList<String>a2=new ArrayList<String>();
        a.add("India");
        a.add("England");
        a.add("USA");
        a.add("Pakistan");
        a1.add("Panjab");
        a1.add("gujarat");
        a1.add("Berkshire");
        a2.add("surat");
        a2.add("great manchester");
        a2.add("london");


        final ArrayAdapter<String>adapter1=new ArrayAdapter<String>(this, R.layout.support_simple_spinner_dropdown_item,a1);
        final ArrayAdapter<String>adapter2=new ArrayAdapter<String>(this, R.layout.support_simple_spinner_dropdown_item,a2);
        final ArrayAdapter<String>adapter=new ArrayAdapter<String>(this, R.layout.support_simple_spinner_dropdown_item,a);
        s_con.setAdapter(adapter);
        s_stat.setAdapter(adapter1);
        s_ct.setAdapter(adapter2);

        s_con.setOnItemSelectedListener(new  OnItemSelectedListener() {

            @Override
            public void onItemSelected(AdapterView<?> parent, View view,
                    int position, long id) {
                // TODO Auto-generated method stub


                country1=parent.getItemAtPosition(position).toString();
                Toast.makeText(getApplicationContext(), country1, Toast.LENGTH_SHORT).show();

            }

            @Override
            public void onNothingSelected(AdapterView<?> parent) {
                // TODO Auto-generated method stub

            }
        });

        s_stat.setOnItemSelectedListener(new OnItemSelectedListener() {

            @Override
            public void onItemSelected(AdapterView<?> parent, View view,
                    int position, long id) {
                // TODO Auto-generated method stub
                state1=parent.getItemAtPosition(position).toString();
                Toast.makeText(getApplicationContext(), state1, Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onNothingSelected(AdapterView<?> parent) {
                // TODO Auto-generated method stub

            }
        });
        s_ct.setOnItemSelectedListener(new OnItemSelectedListener() {

            @Override
            public void onItemSelected(AdapterView<?> parent, View view,
                    int position, long id) {
                // TODO Auto-generated method stub

                 city1=parent.getItemAtPosition(position).toString();
                 Toast.makeText(getApplicationContext(), city1, Toast.LENGTH_SHORT).show();

            }


            @Override
            public void onNothingSelected(AdapterView<?> parent) {
                // TODO Auto-generated method stub

            }
        });







        register2.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                DBHandler handler=new DBHandler(getApplicationContext());
                SQLiteDatabase db=handler.getWritableDatabase();



                String PERSON_COUNTRY="Country";
                String PERSON_STATE="State";
                String PERSON_CITY="City";


                editor.putString(PERSON_COUNTRY, country1);
                editor.putString(PERSON_STATE, state1 );
                editor.putString(PERSON_CITY, city1 );
                editor.apply();

                Toast.makeText(getApplicationContext(), "moving", Toast.LENGTH_SHORT).show();
                Intent i=new Intent(reg2.this,reg3.class);
                startActivity(i);

            }
        });

}}
    package com.example.app;

import java.io.IOException;
import java.util.ArrayList;

import android.R.integer;
import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.Toast;

public class reg3 extends Activity {

    Spinner s_sq;
    EditText dob,unm;
    Button register3;
    public static String PREF="pref";
    public static String def_val="default";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.reg_3);

        s_sq=(Spinner)findViewById(R.id.r_spin_sq);
        dob=(EditText) findViewById(R.id.r_e_dob);
        unm=(EditText) findViewById(R.id.editText1);
        register3=(Button)findViewById(R.id.b_add3);
        ArrayList<String>a=new ArrayList<String>();
        final ArrayAdapter<String>adapter=new ArrayAdapter<String>(this, R.layout.support_simple_spinner_dropdown_item,a);
        a.add("when were you born?");
        a.add("what is your nick name?");
        a.add("what is your childhood name");
        a.add("what city your parents were met");
        a.add("what is your city name");
        s_sq.setAdapter(adapter);

        final SharedPreferences pref=getApplication().getSharedPreferences(PREF, MODE_PRIVATE);
        final SharedPreferences pref1=getApplication().getSharedPreferences(PREF, MODE_PRIVATE);
        final SharedPreferences pref2=getApplication().getSharedPreferences(PREF, MODE_PRIVATE);


        register3.setOnClickListener(new OnClickListener() {

            @SuppressWarnings("static-access")
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                DBHandler handler=new DBHandler(getApplicationContext());
                SQLiteDatabase db=handler.getWritableDatabase();
                String dob1=dob.getText().toString();
                String uname=unm.getText().toString();
                String sec_que=s_sq.getSelectedItem().toString();

                String PERSON_FNAME="FirstName";
                String PERSON_EMAIL="EmaiId";
                String PERSON_PASSWORD="Password";
                String PERSON_PHOTO="Photo";
                String PERSON_GENDER="Gender";
                String PERSON_COUNTRY="Country";
                String PERSON_STATE="State";
                String PERSON_CITY="City";


                String fname=pref.getString(PERSON_FNAME, def_val);
                String email=pref.getString(PERSON_EMAIL, def_val);
                String pwd=pref.getString(PERSON_PASSWORD, def_val);
                String profile=pref1.getString(PERSON_PHOTO, def_val);
                String gender=pref1.getString(PERSON_GENDER, def_val);
                String country=pref2.getString(PERSON_COUNTRY, def_val);
                String state=pref2.getString(PERSON_STATE, def_val);
                String city=pref2.getString(PERSON_CITY, def_val);

                handler.insert(fname, email, pwd, profile, gender, country, state, city, sec_que, dob1, uname);


                Intent i=new Intent(reg3.this,home.class);
                startActivity(i);

                Toast.makeText(getApplicationContext(),"Registered", Toast.LENGTH_LONG).show();
            }
        });

    }

}
reg2类

  package com.example.app;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.sql.Blob;
import java.sql.SQLData;

import android.R.raw;
import android.app.Activity;
import android.app.Application;
import android.content.ContentValues;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.graphics.Bitmap;
import android.graphics.Bitmap.CompressFormat;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.preference.PreferenceManager.OnActivityResultListener;
import android.text.StaticLayout;
import android.util.Log;
import android.widget.Toast;

public class DBHandler extends SQLiteOpenHelper{


    public static int VERSION_NAME=1;
    public static String DATABASE_NAME="altaf";
    public static String TABLE_REGISTER="register";
    public static String PERSON_ID="_PersonId";
    public static String PERSON_FNAME="FirstName";
    public static String PERSON_EMAIL="EmaiId";
    public static String PERSON_PASSWORD="Password";
    public static String PERSON_PHOTO="Photo";
    public static String PERSON_GENDER="Gender";
    public static String PERSON_COUNTRY="Country";
    public static String PERSON_STATE="State";
    public static String PERSON_CITY="City";
    public static String PERSON_S_QUE="Squestion";
    public static String PERSON_DOB="dob";
    public static String PERSON_UNAME="Uname";



    Context context;

    public DBHandler(Context context) {
        super(context, DATABASE_NAME, null, VERSION_NAME);
        // TODO Auto-generated constructor stub


    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        // TODO Auto-generated method stub
        try{
        String create_table="CREATE TABLE " + TABLE_REGISTER + "(" + PERSON_ID + " INTEGER PRIMARY KEY AUTOINCREMENT," + PERSON_FNAME + " TEXT NOT NULL," + PERSON_EMAIL + " TEXT NOT NULL," + PERSON_PASSWORD + " TEXT NOT NULL," + PERSON_PHOTO + " blob not null," + PERSON_GENDER + " TEXT NOT NULL," + PERSON_COUNTRY + " TEXT NOT NULL," + PERSON_STATE + " TEXT NOT NULL," + PERSON_CITY + " TEXT NOT NULL," + PERSON_S_QUE + " TEXT NOT NULL," + PERSON_DOB + " DATE," + PERSON_UNAME + " TEXT NOT NULL )";
        db.execSQL(create_table);
        }
        catch(Exception e)
        {
            Log.e("failed to create table", e.toString());

        }
    }

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


    public void insert(String fname,String email,String pwd,String profile,String gender,String country,String state,String city,String sec_que,String dob,String uname) throws SQLException{

        SQLiteDatabase db=this.getWritableDatabase();
        ContentValues cv=new ContentValues();
        cv.put(PERSON_FNAME, fname);
        cv.put(PERSON_EMAIL, email);
        cv.put(PERSON_PASSWORD, pwd);
        cv.put(PERSON_PHOTO, profile);
        cv.put(PERSON_GENDER, gender);
        cv.put(PERSON_COUNTRY, country);
        cv.put(PERSON_STATE, state);
        cv.put(PERSON_CITY, city);
        cv.put(PERSON_COUNTRY, sec_que);
        cv.put(PERSON_STATE, dob);
        cv.put(PERSON_CITY, uname);
        db.insert(TABLE_REGISTER, null, cv);

        db.close();}
package com.example.app;

import java.io.ByteArrayOutputStream;
import java.io.UnsupportedEncodingException;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.provider.MediaStore;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.ImageView;
import android.widget.RadioButton;
import android.widget.Toast;



    public class reg1 extends

     Activity{

        public static String GEENDER="gender";
        public static String imgDecodableString="imgDecodableStringr";
        //public static String GEENDER="gender";
        public static int RESULT_LOAD_IMG = 1;
        Intent data ;
        ImageView imageView;
        Button register1;

        Uri selectedImage ;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);

        setContentView(R.layout.reg_1);
        imageView=(ImageView)findViewById(R.id.img_select);
        register1=(Button)findViewById(R.id.b_r1_add);


        SharedPreferences sp1=getApplication().getSharedPreferences("pref", MODE_PRIVATE);
        final Editor editor=sp1.edit();
        imageView.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub

                loadimagefrmgallery(v);

            }
        });

        final RadioButton female=(RadioButton)findViewById(R.id.imageView1);
        final RadioButton male=(RadioButton)findViewById(R.id.imageView2);
        male.setOnCheckedChangeListener(new OnCheckedChangeListener() {

            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                // TODO Auto-generated method stub


                if(male.isChecked())
                {
                    male.setChecked(true);
                    GEENDER="male";
                    female.setChecked(false);
                }

            }
        });
        female.setOnCheckedChangeListener(new  OnCheckedChangeListener() {

            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                // TODO Auto-generated method stub

                if(female.isChecked())
                {
                    female.setChecked(true);
                    GEENDER="female";
                    male.setChecked(false);
                }
            }
        });



        register1.setOnClickListener(new OnClickListener() {

            @SuppressWarnings("static-access")
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub

                DBHandler handler=new DBHandler(getApplicationContext());
                SQLiteDatabase db=handler.getWritableDatabase();
                Bitmap bitmap=BitmapFactory.decodeFile(imgDecodableString);
                // convert bitmap to byte
                ByteArrayOutputStream stream = new ByteArrayOutputStream();
                bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);
                byte imageInByte[] = stream.toByteArray();

                String image = null;
                try {
                    image = new String(imageInByte, "UTF");
                } catch (UnsupportedEncodingException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }



                String PERSON_PHOTO="Photo";
                String PERSON_GENDER="Gender";


                editor.putString(PERSON_PHOTO, image);
                editor.putString(PERSON_GENDER, GEENDER);
                editor.apply();
                Toast.makeText(getApplicationContext(),  "moving", Toast.LENGTH_SHORT).show();
                Intent i=new Intent(reg1.this,reg2.class);
                startActivity(i);

            }
        });


    }
    package com.example.app;

import java.util.ArrayList;

import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.Spinner;
import android.widget.Toast;
import android.widget.AdapterView.OnItemSelectedListener;

public class reg2 extends Activity{

    Spinner s_con,s_stat,s_ct;
    Button register2;
    public static String country1,state1,city1;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);

        setContentView(R.layout.reg_2);

        s_con=(Spinner)findViewById(R.id.r_spin_con);
        s_stat=(Spinner)findViewById(R.id.r_spin_stat);
        s_ct=(Spinner)findViewById(R.id.r_spin_ct);
        register2=(Button)findViewById(R.id.b_r2_add);

        SharedPreferences sp2=getApplication().getSharedPreferences("pref", MODE_PRIVATE);
        final Editor editor=sp2.edit();


        ArrayList<String>a=new ArrayList<String>();
        ArrayList<String>a1=new ArrayList<String>();
        ArrayList<String>a2=new ArrayList<String>();
        a.add("India");
        a.add("England");
        a.add("USA");
        a.add("Pakistan");
        a1.add("Panjab");
        a1.add("gujarat");
        a1.add("Berkshire");
        a2.add("surat");
        a2.add("great manchester");
        a2.add("london");


        final ArrayAdapter<String>adapter1=new ArrayAdapter<String>(this, R.layout.support_simple_spinner_dropdown_item,a1);
        final ArrayAdapter<String>adapter2=new ArrayAdapter<String>(this, R.layout.support_simple_spinner_dropdown_item,a2);
        final ArrayAdapter<String>adapter=new ArrayAdapter<String>(this, R.layout.support_simple_spinner_dropdown_item,a);
        s_con.setAdapter(adapter);
        s_stat.setAdapter(adapter1);
        s_ct.setAdapter(adapter2);

        s_con.setOnItemSelectedListener(new  OnItemSelectedListener() {

            @Override
            public void onItemSelected(AdapterView<?> parent, View view,
                    int position, long id) {
                // TODO Auto-generated method stub


                country1=parent.getItemAtPosition(position).toString();
                Toast.makeText(getApplicationContext(), country1, Toast.LENGTH_SHORT).show();

            }

            @Override
            public void onNothingSelected(AdapterView<?> parent) {
                // TODO Auto-generated method stub

            }
        });

        s_stat.setOnItemSelectedListener(new OnItemSelectedListener() {

            @Override
            public void onItemSelected(AdapterView<?> parent, View view,
                    int position, long id) {
                // TODO Auto-generated method stub
                state1=parent.getItemAtPosition(position).toString();
                Toast.makeText(getApplicationContext(), state1, Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onNothingSelected(AdapterView<?> parent) {
                // TODO Auto-generated method stub

            }
        });
        s_ct.setOnItemSelectedListener(new OnItemSelectedListener() {

            @Override
            public void onItemSelected(AdapterView<?> parent, View view,
                    int position, long id) {
                // TODO Auto-generated method stub

                 city1=parent.getItemAtPosition(position).toString();
                 Toast.makeText(getApplicationContext(), city1, Toast.LENGTH_SHORT).show();

            }


            @Override
            public void onNothingSelected(AdapterView<?> parent) {
                // TODO Auto-generated method stub

            }
        });







        register2.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                DBHandler handler=new DBHandler(getApplicationContext());
                SQLiteDatabase db=handler.getWritableDatabase();



                String PERSON_COUNTRY="Country";
                String PERSON_STATE="State";
                String PERSON_CITY="City";


                editor.putString(PERSON_COUNTRY, country1);
                editor.putString(PERSON_STATE, state1 );
                editor.putString(PERSON_CITY, city1 );
                editor.apply();

                Toast.makeText(getApplicationContext(), "moving", Toast.LENGTH_SHORT).show();
                Intent i=new Intent(reg2.this,reg3.class);
                startActivity(i);

            }
        });

}}
    package com.example.app;

import java.io.IOException;
import java.util.ArrayList;

import android.R.integer;
import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.Toast;

public class reg3 extends Activity {

    Spinner s_sq;
    EditText dob,unm;
    Button register3;
    public static String PREF="pref";
    public static String def_val="default";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.reg_3);

        s_sq=(Spinner)findViewById(R.id.r_spin_sq);
        dob=(EditText) findViewById(R.id.r_e_dob);
        unm=(EditText) findViewById(R.id.editText1);
        register3=(Button)findViewById(R.id.b_add3);
        ArrayList<String>a=new ArrayList<String>();
        final ArrayAdapter<String>adapter=new ArrayAdapter<String>(this, R.layout.support_simple_spinner_dropdown_item,a);
        a.add("when were you born?");
        a.add("what is your nick name?");
        a.add("what is your childhood name");
        a.add("what city your parents were met");
        a.add("what is your city name");
        s_sq.setAdapter(adapter);

        final SharedPreferences pref=getApplication().getSharedPreferences(PREF, MODE_PRIVATE);
        final SharedPreferences pref1=getApplication().getSharedPreferences(PREF, MODE_PRIVATE);
        final SharedPreferences pref2=getApplication().getSharedPreferences(PREF, MODE_PRIVATE);


        register3.setOnClickListener(new OnClickListener() {

            @SuppressWarnings("static-access")
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                DBHandler handler=new DBHandler(getApplicationContext());
                SQLiteDatabase db=handler.getWritableDatabase();
                String dob1=dob.getText().toString();
                String uname=unm.getText().toString();
                String sec_que=s_sq.getSelectedItem().toString();

                String PERSON_FNAME="FirstName";
                String PERSON_EMAIL="EmaiId";
                String PERSON_PASSWORD="Password";
                String PERSON_PHOTO="Photo";
                String PERSON_GENDER="Gender";
                String PERSON_COUNTRY="Country";
                String PERSON_STATE="State";
                String PERSON_CITY="City";


                String fname=pref.getString(PERSON_FNAME, def_val);
                String email=pref.getString(PERSON_EMAIL, def_val);
                String pwd=pref.getString(PERSON_PASSWORD, def_val);
                String profile=pref1.getString(PERSON_PHOTO, def_val);
                String gender=pref1.getString(PERSON_GENDER, def_val);
                String country=pref2.getString(PERSON_COUNTRY, def_val);
                String state=pref2.getString(PERSON_STATE, def_val);
                String city=pref2.getString(PERSON_CITY, def_val);

                handler.insert(fname, email, pwd, profile, gender, country, state, city, sec_que, dob1, uname);


                Intent i=new Intent(reg3.this,home.class);
                startActivity(i);

                Toast.makeText(getApplicationContext(),"Registered", Toast.LENGTH_LONG).show();
            }
        });

    }

}

TABLE_REGISTER
一样,
PERSON__QUE
也可以使用
TEXT NOT NULL
属性,但在表中插入数据时,不在
ContentValues
中添加
PERSON__QUE
列值

在插入方法中添加以下内容:

cv.put(PERSON_S_QUE, sec_que);

非常感谢你。。。亲爱的。。。。我知道这是一个愚蠢的错误,我正在通过bdw再次感谢你的小鬼时间贡献,我希望你问你。。。。。。。。为什么配置文件字段保存默认字符串。。。。。。有什么想法吗?这片土地上有一滴。。。。。。。。。这就是它以字符串默认值存储的原因吗?公共静态字符串PERSON\u PHOTO=“PHOTO”@farhan:是的,因为您在
def_val
中指定了
default
,这里是
String profile=pref1.getString(PERSON\u PHOTO,def_val)
getString
方法返回
def\u val
这意味着PERSON\u PHOTO获取空值,它正在存储默认值?