为什么我会收到这样的错误?我想在一个文本视图和toast上显示我的sqlite列Fat的总和,这样我就知道它正在工作,但是显示了一个错误。
android.content.res.Resources$NotFoundException: String resource ID
#0x7b
at android.content.res.Resources.getText(Resources.java:299)
at android.support.v7.widget.ResourcesWrapper.getText(ResourcesWrapper.java:52)
at android.widget.TextView.setText(TextView.java:4132)
at jm.myapplication.Main.MainActivity.totalFat(MainActivity.java:169)
at jm.myapplication.Main.MainActivity.onClick(MainActivity.java:498)
at android.view.View.performClick(View.java:4780)
at android.view.View$PerformClick.run(View.java:19866)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
这段代码在我的mainactivity类中
public void totalFat()
{
repo repo = new repo(MainActivity.this);
int i = repo.totalFatrepo();
tvtotal.setText(i);
Toast.makeText(getApplicationContext(),
i, Toast.LENGTH_LONG)
.show();
}
@Override
public void onClick(View view) {
if (view == findViewById(R.id.water)) {
totalFat();
}
}
虽然这在我的回购中
public int totalFatrepo(){
SQLiteDatabase db = dbHelper.getWritableDatabase();
String query = "SELECT SUM(Fat) FROM " + breakfast.TABLE;
Cursor c = db.rawQuery(query, null);
c.moveToFirst();
int i=c.getInt(0);
return i;
}
发布于 2017-02-02 11:28:23
如果您查看堆栈跟踪,就会发现问题不在于数据库查询,而在于如何将文本设置为TextView。如果您将integer传递给tvtotal.setText(i)
,那么它需要一个资源id整数(values.xml中的R.string.some_text
)。
如下调用,触发另一个以String为参数的setText方法:
tvtotal.setText(""+i);
https://stackoverflow.com/questions/41993296
复制