2016-04-19 7 views
1

私は現在、人の詳細をデータベースに保存してEditTextフィールドに取り込むことができる小さなアプリケーションを開発中です。現在私はデータベースに人名を保存することができます。しかし、私はこのデータの取得に問題があります。SQL LiteデータベースからEditTextにデータを取得

誰でも助けることができれば幸いです。

ありがとうございます!

DatabaseHelper.java:

package my.example.com.mymedicare; 

import android.content.Context; 
import android.database.sqlite.SQLiteDatabase; 
import android.database.sqlite.SQLiteOpenHelper; 

public class DatabaseHelper extends SQLiteOpenHelper { 
public DatabaseHelper(Context context) { 
    super(context, "user.db", null, 4); 
} 

@Override 
public void onCreate(SQLiteDatabase db) { 
    db.execSQL("CREATE TABLE Users (ID INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL , FullName VARCHAR, Email VARCHAR, Number INTEGER, Age INTEGER, Nurse VARCHAR)"); 
} 

@Override 
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
    db.execSQL("DROP TABLE IF EXISTS Users"); 

    // Create tables again 
    onCreate(db); 

} 
} 

SQLHelper.java:

package my.example.com.mymedicare; 

import android.content.ContentValues; 
import android.content.Context; 
import android.database.Cursor; 
import android.database.sqlite.SQLiteDatabase; 

import java.io.File; 
import java.io.InputStream; 
import java.util.ArrayList; 
import java.util.List; 

public class SQLHelper { 
Context mContext; 
DatabaseHelper dbHelper; 
public SQLHelper(Context mContext) { 
    dbHelper = new DatabaseHelper(mContext); 
    this.mContext = mContext; 
} 



public boolean insert(String FullName, int i){ 
    SQLiteDatabase db = dbHelper.getWritableDatabase(); 
    ContentValues values = new ContentValues(); 
    values.put("FullName", FullName); 
     db.close(); 
     return true; 
    } 
    } 

Register.java:

package my.example.com.mymedicare; 

import android.content.Intent; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.EditText; 
import android.widget.Toast; 

public class Register extends AppCompatActivity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_register); 
}; 


public void btnCreate(View view) { 

    SQLHelper sqlHelper = new SQLHelper(this); 

    EditText addName = (EditText) findViewById(R.id.nameText); 
    sqlHelper.insert(addName.getText().toString(), 0); 

    Toast.makeText(this, "Your Account Details Have Been Saved", Toast.LENGTH_SHORT).show(); 
    startActivity(new Intent(Register.this, MainMenu.class)); 
}} 

Modify.java:

package my.example.com.mymedicare; 

import android.database.Cursor; 
import android.database.sqlite.SQLiteDatabase; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.widget.EditText; 

public class Modify extends AppCompatActivity { 

static SQLiteDatabase db; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_modify); 

    EditText getName=(EditText)findViewById(R.id.nameText); 
} 
} 
+0

あなたのコードはどこですか? –

+0

DatabaseHelper.javaを元の投稿に追加しました。 FullNameデータを取得し、それを "nameText" EditTextフィールドに表示する方法があまりよく分かりません。 – ZenoX

+0

データを取得するために使用できるコマンドがいくつかあります。ここから始めてください:https://www.google.com/?gws_rd=ssl#safe=active&q=android+sqlhelper+get+data –

答えて

1

この手順に従います。

このメソッドをSQLHelper.javaファイルに配置します。

あなたの変更Javaクラスで、このクラス入れ
public ArrayList<String> fetch_Edittext() { 
    ArrayList<String> arr_ = new ArrayList<String>(); 
    String selectQuery = "Select * FROM " + TABLE_SCANITEMS + " ORDER BY id"; 

    SQLiteDatabase db = this.getWritableDatabase(); 
    Cursor cursor = db.rawQuery(selectQuery, null); 

    if (cursor.moveToFirst()) { 
     do { 
      arr_.add(cursor.getString(0)); 

     } while (cursor.moveToNext()); 
    } 
    db.close(); 
    return arr_; 
} 

private class GetEdittext extends AsyncTask<Void, Void, Void> { 
    @Override 
    protected void onPreExecute() { 
     super.onPreExecute(); 
     // dialog start 
     Log.e("Currency", "3"); 
    } 

    @Override 
    protected Void doInBackground(Void... arg0) { 
     ArrayList<String> arr_ = new ArrayList<String>(); 
     arr_ = db.fetch_Edittext(); 
     return null; 
    } 

    @Override 
    protected void onPostExecute(Void resul) { 
     super.onPostExecute(resul); 
     // dialog dismiss 
     //hear set your edit text 
    } 
} 

はその後のようなメソッドを作成する時に、このクラスを呼び出します。

new GetEdittext().execute(); 
+0

返信いただきありがとうございます。私が今取得している唯一のエラーは、TABLE_SCANITEMSの「シンボルを解決できません」と「getWritableDatabaseのメソッドを解決できません」です。 – ZenoX

+0

編集:getWritableDatabaseエラーを修正しました。 TABLE_SCANITEMSの "シンボルを解決できません" – ZenoX

+0

@ZenoXまず、古いapkファイルをアンインストールしてから、このコードセットをDatabaseHelper.javaクラス "db.execSQL(createtbl);に設定してください。 oncreateメソッドで。 –

関連する問題