我遇到了一个无法解决的问题;我在网上搜索,但我没有找到一个精确的解决方案,或者至少我不太了解,我不知道.
无论如何,我有Android Studio v.2.1,这就是我要做的事情:
起初我创建了一个覆盖onCreate方法的SQLite数据库,而不是在同一方法的另一个覆盖中,我编写了一个方法来检查数据库是否为空;如果是真的,它将增加大约300000个单词.
这是这部分:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Database db = new Database(getApplicationContext());
db.open();
if (db.queryTutteParole().getCount() == 0) {
db.inserisciParole("pane", "no");
db.inserisciParole("latte", "no");
db.inserisciParole("uovo", "no");
db.inserisciParole("farina", "no");
db.inserisciParole("sale", "no");
//and all the remaining words
}
db.close();
}
澄清一下:queryTutteParole()是一个返回数据库中所有内容的游标的方法,而inserisciParole()会将单词及其值放在数据库中.
好吧,没有错误的代码(我测试只用了5个字),但如果我把所有300000字,我尝试在我的设备上运行它,我有这些错误:
我该做什么?
谢谢 :)
解决方法:
在res / values文件夹中创建一个array.xml文件,并将您的内容放入其中,如下所示:
pane,no
latte,no
uovo,no
然后像这样迭代它:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String[] yourArray = getResources().getStringArray(R.array.yourArray);
if (db.queryTutteParole().getCount() == 0) {
for (String s : yourArray) {
String[] splittedArray = s.split(",");
db.inserisciParole(splittedArray[0], splittedArray[1]);
}
}
db.close();
}
标签:android,java,android-studio,javac
来源: https://codeday.me/bug/20190727/1554653.html