gpt4 book ai didi

java - 使用 Getters 和 Setters 显示 SQLite 中的单个数据

转载 作者:行者123 更新时间:2023-12-01 04:19:33 25 4
gpt4 key购买 nike

我正在尝试从数据库中检索单行并将其显示到 Activity 中。我想知道是否可以使用 Getters 和 Setters 来传递值。我能够轻松检索数据,但问题是我在使用 getter 和 setter 传递值时遇到问题。这是我在 LogCat 中得到的信息。

09-22 13:46:33.573: D/Enter Activity(3110): You have entered Score Activity
09-22 13:46:34.177: D/Data Retreival(3110): Getting Data
09-22 13:46:34.183: D/User(3110): 1 XyLoL 0 0 null null
09-22 13:46:34.183: D/Database(3110): Database Close
09-22 13:46:34.194: D/USER INFO(3110): 0 null 0 0 null null
09-22 13:46:34.194: W/ResourceType(3110): No package identifier when getting value for resource number 0x00000000
09-22 13:46:34.203: D/AndroidRuntime(3110): Shutting down VM
09-22 13:46:34.203: W/dalvikvm(3110): threadid=1: thread exiting with uncaught exception (group=0x40014760)
09-22 13:46:34.223: E/AndroidRuntime(3110): FATAL EXCEPTION: main
09-22 13:46:34.223: E/AndroidRuntime(3110): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.xylol.o_chabeta/com.xylol.o_chabeta.Enter_Score}: android.content.res.Resources$NotFoundException: String resource ID #0x0

我只是想问一下是不是

User_Score.java( Activity )

public class Enter_Score extends Activity implements OnClickListener {

ScoreDataSource datasource;
UserHandler user;

//Textview Declaration

TextView username;
TextView score;
TextView questions_left;
TextView best_cat;
TextView worst_cat;

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

username = (TextView) findViewById(R.id.stats_username);
score = (TextView) findViewById(R.id.stat_score);
questions_left = (TextView) findViewById(R.id.stat_questions_left);
best_cat = (TextView) findViewById(R.id.stats_best);
worst_cat = (TextView) findViewById(R.id.stats_worst);

datasource = new ScoreDataSource(this);
datasource.open();
Log.d("Data Retreival", "Getting Data");
datasource.getScore();
datasource.close();


UserHandler user = new UserHandler();

long user_id = user.getUSER_ID();
String user_n =user.getUSER_NAME();
int user_s =user.getUSER_SCORE();
int user_ql= user.getUSER_QUESTIONS_LEFT();
String user_b = user.getUSER_BEST_CATEGORY() ;
String user_w = user.getUSER_WORST_CATEGORY();

Log.d("USER INFO", user_id+ " " + user_n + " " + user_s + " " + user_ql + " " + user_b + " " + user_w);

username.setText(user_n);
score.setText(user_s);
questions_left.setText(user_ql);
best_cat.setText(user_b);
worst_cat.setText(user_w);


Button b = (Button) findViewById(R.id.back);
b.setOnClickListener(this);


}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.enter__score, menu);
return true;
}

@Override
public void onClick(View v) {

if(v.getId() == R.id.back){
Intent i = new Intent(Enter_Score.this, MainActivity.class);
startActivity(i);
finish();
}

}



}

ScoreDataSource.java(数据检索)

public class ScoreDataSource extends Enter_Score{


SQLiteOpenHelper dbhelper;
SQLiteDatabase database;


private static final String[] allColumns = {
O_chaDBOpenHelper.USER_ID,
O_chaDBOpenHelper.USER_NAME,
O_chaDBOpenHelper.USER_SCORE,
O_chaDBOpenHelper.USER_QUESTIONS_LEFT,
O_chaDBOpenHelper.USER_BEST_CATEGORY,
O_chaDBOpenHelper.USER_WORST_CATEGORY
};

public ScoreDataSource(Context context){

dbhelper = new O_chaDBOpenHelper(context);
}

public void open() {
database = dbhelper.getReadableDatabase();
}

public void close() {
Log.d("Database", "Database Close");
dbhelper.close();
}

public void getScore() {

Cursor c = database.query(O_chaDBOpenHelper.USER_TABLE, allColumns,
null, null, null, null, null);
c.moveToFirst();

int iid = c.getColumnIndex(O_chaDBOpenHelper.USER_ID);
int iusername = c.getColumnIndex(O_chaDBOpenHelper.USER_NAME);
int iscore = c.getColumnIndex(O_chaDBOpenHelper.USER_SCORE);
int iql = c.getColumnIndex(O_chaDBOpenHelper.USER_QUESTIONS_LEFT);
int ibc = c.getColumnIndex(O_chaDBOpenHelper.USER_BEST_CATEGORY);
int iwc = c.getColumnIndex(O_chaDBOpenHelper.USER_WORST_CATEGORY);

// Get and Set Valueszzz

long id = c.getLong(iid);
String username = c.getString(iusername);
int score = c.getInt(iscore);
int questions_left = c.getInt(iql);
String best_cat = c.getString(ibc);
String worst_cat = c.getString(iwc);

Log.d("User", id+ " " + username+ " " + score+ " " + questions_left + " " + best_cat + " " + worst_cat );

UserHandler user = new UserHandler();

user.setUSER_ID(id);
user.setUSER_NAME(username);
user.setUSER_SCORE(score);
user.setUSER_QUESTIONS_LEFT(questions_left);
user.setUSER_BEST_CATEGORY(best_cat);
user.setUSER_WORST_CATEGORY(worst_cat);


}

}

UserHandler.java( getter 和 setter )

public class UserHandler {

private long USER_ID;
private String USER_NAME;
private int USER_SCORE;
private int USER_QUESTIONS_LEFT;
private String USER_BEST_CATEGORY;
private String USER_WORST_CATEGORY;

public UserHandler(){

}

public UserHandler(int ID, String NAME, String GENDER, String COUNTRY, int SCORE, int QUESTION_LEFT, String BEST_CATEGORY, String WORST_CATEGORY){
this.USER_ID = ID;
this.USER_NAME = NAME;
this.USER_SCORE = SCORE;
this.USER_QUESTIONS_LEFT = QUESTION_LEFT;
this.USER_BEST_CATEGORY = BEST_CATEGORY;
this.USER_WORST_CATEGORY = WORST_CATEGORY;
}

public long getUSER_ID() {
return USER_ID;
}

public void setUSER_ID(long uSER_ID) {
this.USER_ID = uSER_ID;
}

public String getUSER_NAME() {
return USER_NAME;
}

public void setUSER_NAME(String uSER_NAME) {
this.USER_NAME = uSER_NAME;
}

public int getUSER_SCORE() {
return USER_SCORE;
}

public void setUSER_SCORE(int uSER_SCORE) {
this.USER_SCORE = uSER_SCORE;
}

public int getUSER_QUESTIONS_LEFT() {
return USER_QUESTIONS_LEFT;
}

public void setUSER_QUESTIONS_LEFT(int uSER_QUESTIONS_LEFT) {
this.USER_QUESTIONS_LEFT = uSER_QUESTIONS_LEFT;
}

public String getUSER_BEST_CATEGORY() {
return USER_BEST_CATEGORY;
}

public void setUSER_BEST_CATEGORY(String uSER_BEST_CATEGORY) {
this.USER_BEST_CATEGORY = uSER_BEST_CATEGORY;
}

public String getUSER_WORST_CATEGORY() {
return USER_WORST_CATEGORY;
}

public void setUSER_WORST_CATEGORY(String uSER_WORST_CATEGORY) {
this.USER_WORST_CATEGORY = uSER_WORST_CATEGORY;
}

}

最佳答案

您在 User_Score.java 和 ScoreDataSource.java 中创建的 UserHandler 对象不同。因此你没有得到正确的值。

也许你可以创建 UserHandler 类 Singleton。

关于java - 使用 Getters 和 Setters 显示 SQLite 中的单个数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19086741/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com