Android 如何将硬编码数据更改为DB数据?

Android 如何将硬编码数据更改为DB数据?,android,Android,我正在制作一个“我从来没有”的游戏作为学校项目。基本上,每次你点击一个按钮,一个新的文本就会出现,而旧的文本就会消失。问题是我不知道如何将它连接到DBHelperList。在NeverTheGame.java上,您可以列出希望在游戏中使用的行。计划是从列表中获取数据,并将其放在NeverTheGame.java上。如何做到这一点?(对不起,我的英语不好) 永远不要使用game.java public类永远不会扩展appcompative活动{ 积分值; ArrayAdapter mAdapter

我正在制作一个“我从来没有”的游戏作为学校项目。基本上,每次你点击一个按钮,一个新的文本就会出现,而旧的文本就会消失。问题是我不知道如何将它连接到DBHelperList。在NeverTheGame.java上,您可以列出希望在游戏中使用的行。计划是从列表中获取数据,并将其放在NeverTheGame.java上。如何做到这一点?(对不起,我的英语不好)

永远不要使用game.java

public类永远不会扩展appcompative活动{
积分值;
ArrayAdapter mAdapter;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u从不\u游戏);
changeTextOnce();
changeTextViewValue();
}
私有void changeTextViewValue(){
最终字符串[]无任务={
“Jag har aldrig kollat påanime。”,
“Jag har aldrig在någon påfacebook上的活动。”,
“Jag har aldrig Svidmat.”,
“Jag har aldrig kollat påDisney频道。”,
“我爱你,我爱你,我爱你,我爱你。”,
“Jag har aldrig bett om en lönehörhöjning。”,
“Jag har aldrig Argumentrat med någon匿名人士påinternet。”,
“我是阿尔德里格·弗尔斯克特·柳加·弗尔斯格恩·奥赫·德吉克特·赫尔维特。”,
“Jag har aldrig trott pågud eller nåt liknade.”;
final TextView changeText=(TextView)findViewById(R.id.neverText);
按钮更改文本按钮=(按钮)findViewById(R.id.neverButton);
changeText.startAnimation(AnimationUtils.loadAnimation(不包括game.this、android.R.anim.slide,左移));
changeTextButton.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
int random=(int)(Math.random()*neverTasks.length);
如果(随机==旧值){
random=(int)(Math.random()*neverTasks.length);
}
changeText.setText(neverTasks[random]);
oldValue=随机;
}
});
};
私有void changeTextOnce(){
final TextView changeText=(TextView)findViewById(R.id.neverText);
按钮更改文本按钮=(按钮)findViewById(R.id.neverButton);
changeTextButton.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
changeText.setText(“努力!”;
}
});
}
}
java

import java.util.ArrayList;
公共类IveNever从不扩展AppCompative活动{
ListView任务;
私人按钮玩游戏;
私人按钮howTo;
ArrayAdapter mAdapter;
DbHelperList dbHelper;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u ive\u never);
dbHelper=新的DbHelperList(此);
lstTask=(ListView)findViewById(R.id.lstTask);
loadTaskList();
howTo=(按钮)findviewbyd(R.id.iveNeverHowBtn);
howTo.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
Intent go1=新的Intent(ivever.this、NeverWeb.class);
星触觉(go1);
}
});
playTheGame=(按钮)findViewById(R.id.playGameBtn);
playTheGame.setOnClickListener(newview.OnClickListener()){
@凌驾
公共void onClick(视图v){
Intent go2=新的Intent(ivever.this,NeverTheGame.class);
星触觉(go2);
}
});
}
public void loadTaskList(){
ArrayList taskList=dbHelper.getTaskList();
if(mAdapter==null){
mAdapter=newarrayadapter(这个,R.layout.createlinerow,R.id.task_title,taskList);
lstask.setAdapter(mAdapter);
}
否则{
mAdapter.clear();
mAdapter.addAll(任务列表);
mAdapter.notifyDataSetChanged();
}
}
@凌驾
公共布尔onCreateOptions菜单(菜单){
getMenuInflater().充气(R.menu.add,menu);
//更改菜单图标颜色
可绘制图标=menu.getItem(0.getIcon();
icon.mutate();
icon.setColorFilter(getResources().getColor(android.R.color.white)、PorterDuff.Mode.SRC_-IN);
返回super.onCreateOptions菜单(菜单);
}
@凌驾
公共布尔值onOptionsItemSelected(菜单项项){
开关(item.getItemId()){
案例R.id.action\u add\u任务:
最终编辑文本任务编辑文本=新编辑文本(本);
AlertDialog=新建AlertDialog.Builder(此)
.setTitle(“添加新行”)
.setMessage(“我从未……”)
.setView(任务编辑文本)
.setPositiveButton(“添加”,新建DialogInterface.OnClickListener(){
@凌驾
public void onClick(DialogInterface dialog,int which){
String task=String.valueOf(taskEditText.getText());
dbHelper.insertNewTask(任务);
loadTaskList();
}
})
.setNegativeButton(“取消”,null)
.create();
dialog.show();
返回true;
}
返回super.onOptionsItemSelected(项目);
}
公共void deleteTask(视图){
View parent=(View)View.getParent();
TextView taskTextView=(TextView)parent.findViewById(R.id.task_title);
e(“String”,(String)taskTextView.getText();
String task=String.valueOf(taskTextView.getText());
dbHelper.deleteTask(任务);
loadTaskList();
}
}
DBHelperList.java

public类DbHelperList扩展了SQLiteOpenHelper{
私有静态最终字符串DB_NAME=“EDMTDev”;
专用静态最终整数DB_VER=1;
公共静态最终字符串DB_TABLE=“Task”;
公共静态最终字符串DB_COLUMN=“TaskName”;
公共数据库帮助列表(上下文){
超级(上下文,DB_NA
public class NeverTheGame extends AppCompatActivity {


int oldValue;
ArrayAdapter<String> mAdapter;

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

}
private void changeTextViewValue() {
    final String[] neverTasks = {
            "Jag har aldrig kollat på anime.",
            "Jag har aldrig stalkat någon på facebook.",
            "Jag har aldrig svimmat.",
            "Jag har aldrig kollat på Disney Channel.",
            "Jag har aldrig varit med på en fest och tänkt för mig själv'Jag är omringad av idioter'.",
            "Jag har aldrig bett om en lönehörhöjning.",
            "Jag har aldrig argumenterat med någon anonym person på internet.",
            "Jag har aldrig försökt ljuga för någon och det gick åt helvete.",
            "Jag har aldrig trott på gud eller nåt liknade."};
    final TextView changeText = (TextView) findViewById(R.id.neverText);
    Button changeTextButton = (Button) findViewById(R.id.neverButton);
    changeText.startAnimation(AnimationUtils.loadAnimation(NeverTheGame.this, android.R.anim.slide_in_left));

    changeTextButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            int random = (int) (Math.random() * neverTasks.length);
            if(random == oldValue){
                random = (int) (Math.random() * neverTasks.length);
            }
            changeText.setText(neverTasks[random]);
            oldValue = random;
        }
    });
};
private void changeTextOnce(){
    final TextView changeText = (TextView) findViewById(R.id.neverText);
    Button changeTextButton = (Button)findViewById(R.id.neverButton);
    changeTextButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            changeText.setText("Go hard!");
        }
    });
}
}
import java.util.ArrayList;

public class IveNever extends AppCompatActivity {

ListView lstTask;
private Button playTheGame;
private Button howTo;
ArrayAdapter<String> mAdapter;
DbHelperList dbHelper;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_ive_never);
    dbHelper = new DbHelperList(this);
    lstTask = (ListView)findViewById(R.id.lstTask);
    loadTaskList();
    howTo = (Button) findViewById(R.id.iveNeverHowBtn);
    howTo.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent go1 = new Intent(IveNever.this, NeverWeb.class);
            startActivity(go1);
        }
    });

    playTheGame = (Button) findViewById(R.id.playGameBtn);
    playTheGame.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent go2 = new Intent(IveNever.this, NeverTheGame.class);
            startActivity(go2);
        }
    });
}

public void loadTaskList() {
    ArrayList<String> taskList = dbHelper.getTaskList();
    if(mAdapter==null){
        mAdapter = new ArrayAdapter<String>(this,R.layout.createlinerow,R.id.task_title,taskList);
        lstTask.setAdapter(mAdapter);
    }
    else{
        mAdapter.clear();
        mAdapter.addAll(taskList);
        mAdapter.notifyDataSetChanged();
    }
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.add,menu);
    //Change menu icon color
    Drawable icon = menu.getItem(0).getIcon();
    icon.mutate();
    icon.setColorFilter(getResources().getColor(android.R.color.white), PorterDuff.Mode.SRC_IN);

    return super.onCreateOptionsMenu(menu);
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()){
        case R.id.action_add_task:
            final EditText taskEditText = new EditText(this);
            AlertDialog dialog = new AlertDialog.Builder(this)
                    .setTitle("Add A New Line ")
                    .setMessage("I´ve never.....")
                    .setView(taskEditText)
                    .setPositiveButton("Add", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            String task = String.valueOf(taskEditText.getText());
                            dbHelper.insertNewTask(task);
                            loadTaskList();
                        }
                    })
                    .setNegativeButton("Cancel",null)
                    .create();

            dialog.show();
            return true;
    }

    return super.onOptionsItemSelected(item);
}

public void deleteTask(View view){
    View parent = (View)view.getParent();
    TextView taskTextView = (TextView)parent.findViewById(R.id.task_title);
    Log.e("String", (String) taskTextView.getText());
    String task = String.valueOf(taskTextView.getText());
    dbHelper.deleteTask(task);
    loadTaskList();
}
}
public class DbHelperList extends SQLiteOpenHelper {

private static final String DB_NAME="EDMTDev";
private static final int DB_VER = 1;
public static final String DB_TABLE="Task";
public static final String DB_COLUMN = "TaskName";

public DbHelperList(Context context) {
    super(context, DB_NAME, null, DB_VER);
}

@Override
public void onCreate(SQLiteDatabase db) {
    String query = String.format("CREATE TABLE %s (ID INTEGER PRIMARY KEY AUTOINCREMENT,%s TEXT NOT NULL);",DB_TABLE,DB_COLUMN);
    db.execSQL(query);

}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    String query = String.format("DELETE TABLE IF EXISTS %s",DB_TABLE);
    db.execSQL(query);
    onCreate(db);

}

public void insertNewTask(String task){
    SQLiteDatabase db= this.getWritableDatabase();
    ContentValues values = new ContentValues();
    values.put(DB_COLUMN,task);
    db.insertWithOnConflict(DB_TABLE,null,values,SQLiteDatabase.CONFLICT_REPLACE);
    db.close();
}

public void deleteTask(String task){
    SQLiteDatabase db = this.getWritableDatabase();
    db.delete(DB_TABLE,DB_COLUMN + " = ?",new String[]{task});
    db.close();
}

public ArrayList<String> getTaskList(){
    ArrayList<String> taskList = new ArrayList<>();
    SQLiteDatabase db = this.getReadableDatabase();
    Cursor cursor = db.query(DB_TABLE,new String[]{DB_COLUMN},null,null,null,null,null);
    while(cursor.moveToNext()){
        int index = cursor.getColumnIndex(DB_COLUMN);
        taskList.add(cursor.getString(index));
    }
    cursor.close();
    db.close();
    return taskList;
}
}
@Override
public void onCreate(SQLiteDatabase db) {
    String query = String.format("CREATE TABLE %s (ID INTEGER PRIMARY KEY AUTOINCREMENT,%s TEXT NOT NULL);", DB_TABLE, DB_COLUMN);
    db.execSQL(query);
    insertAll(db);
}

private void insertAll(SQLiteDatabase db) {
   ContentValues values = new ContentValues();
   for (String neverTask : neverTasks) {
       values.put(DB_COLUMN, neverTask);
       long rowId = db.insert(DB_TABLE, null, values);
       if (rowId != -1) {
           Log.i("insertAll", "Inserted: " + neverTask);
       } else {
           Log.w("insertAll", "failure: " + neverTask);
       }
       // values.clear();
    }
}
final String createTable2 = String.format("CREATE TABLE %s (ID INTEGER PRIMARY KEY AUTOINCREMENT,%s TEXT NOT NULL);", DB_TABLE2, DB_TABLE2_COLUMN);
db.execSQL(createTable2);
public class DbHelperList extends SQLiteOpenHelper {

private static final String DB_NAME="EDMTDev";
private static final int DB_VER = 1;
public static final String DB_TABLE="Task";
public static final String DB_COLUMN = "TaskName";
String[] neverTasks;

public DbHelperList(Context context) {
    super(context, DB_NAME, null, DB_VER);
}

@Override
public void onCreate(SQLiteDatabase db) {
    String query = String.format("CREATE TABLE %s (ID INTEGER PRIMARY KEY AUTOINCREMENT,%s TEXT NOT NULL);",DB_TABLE,DB_COLUMN);
    db.execSQL(query);
    insertAll(db);
}

private void insertAll(SQLiteDatabase db) {
    ContentValues values = new ContentValues();

    for (String neverTask : neverTasks) {
        values.put(DB_COLUMN, neverTask);
        long rowId = db.insert(DB_TABLE, null, values);
        if (rowId != -1) {
            Log.i("insertAll", "Inserted: " + neverTask);
        } else {
            Log.w("insertAll", "failure: " + neverTask);
        }
        // values.clear();
    }
}


@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    String query = String.format("DELETE TABLE IF EXISTS %s",DB_TABLE);
    db.execSQL(query);
    onCreate(db);
    insertAll(db);

}
  int oldValue;
ArrayAdapter<String> mAdapter;

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

}
private void changeTextViewValue() {
    final String[] neverTasks = {
          /*  "Jag har aldrig kollat på anime.",
            "Jag har aldrig stalkat någon på facebook.",
            "Jag har aldrig svimmat.",
            "Jag har aldrig kollat på Disney Channel.",
            "Jag har aldrig varit med på en fest och tänkt för mig själv'Jag är omringad av idioter'.",
            "Jag har aldrig bett om en lönehörhöjning.",
            "Jag har aldrig argumenterat med någon anonym person på internet.",
            "Jag har aldrig försökt ljuga för någon och det gick åt helvete.",
            "Jag har aldrig trott på gud eller nåt liknade."*/};
    final TextView changeText = (TextView) findViewById(R.id.neverText);
    Button changeTextButton = (Button) findViewById(R.id.neverButton);
    changeText.startAnimation(AnimationUtils.loadAnimation(NeverTheGame.this, android.R.anim.slide_in_left));

    changeTextButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            int random = (int) (Math.random() * neverTasks.length);
            if(random == oldValue){
                random = (int) (Math.random() * neverTasks.length);
            }
            changeText.setText(neverTasks[random]);
            oldValue = random;
        }
    });
};