我正在制作一个有趣的小游戏,我让一切都很完美。数据库全部显示在文本视图中,就像它们应该具有的一切都很棒。但是我决定添加一个片段视图来拥有多个页面(而不是单击按钮并显示/隐藏信息)而且我认为一切都很好。这些页面按原样滑动,但现在的问题是数据库中的信息不再显示在textview中了......
我已经包含了与数据库相关的所有代码:
private DBAdapter db;
private DBAdapter_Gold dbGold;
db = new DBAdapter(this.getActivity());
dbGold = new DBAdapter_Gold(this.getActivity());
dbGold.open();
try {
String destPath = "/data/data/" + getActivity().getPackageName() + "/databases/GoldDB";
File f = new File(destPath);
if (!f.exists()) {
CopyDB(getActivity().getBaseContext().getAssets().open("GoldDB"), new FileOutputStream(destPath));
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
try {
dbGold.open();
Cursor c = DBAdapter_Gold.getAllRecords();
if (c.moveToFirst()) {
do {
DisplayRecordGold(c);
} while (c.moveToNext());
}
} catch (Exception e) {
Log.e("ERROR", "ERROR IN CODE:" + e.toString());
e.printStackTrace();
}
public void CopyDB(InputStream inputStream, OutputStream outputStream) throws IOException {
// ---copy 1K bytes at a time---
byte[] buffer = new byte[1024];
int length;
while ((length = inputStream.read(buffer)) > 0) {
outputStream.write(buffer, 0, length);
}
inputStream.close();
outputStream.close();
}
public void DisplayRecordGold(Cursor c) {
TextView shopGoldValue1 = (TextView) getActivity().findViewById(R.id.shopGoldValue1);
shopGoldValue1.setText(c.getString(1).toString());
shopGoldValue1.setText("asdf");
}
现在我知道为了让所有的语法错误消失,我不得不在很多事情面前添加:getActivity(),所以也许我在那里做错了。我一直盯着这个太长时间了,真的可以在这里使用一些帮助..
感谢。
修改
我应该指出错误最有可能出现在DisplayRecord方法中。似乎它甚至没有调用该方法或者它没有找到变量来更改文本。正如你所看到的那样,我将文本设置为“asdf”以查看它是否做了什么,它只是保持空白。
答案 0 :(得分:0)
将您的代码更改为:
db = new DBAdapter(this.getActivity().getApplication());
dbGold = new DBAdapter_Gold(this.getActivity().getApplication());