gpt4 book ai didi

android - EditText 或 TextView 的 setText 方法在 switch 语句中不起作用

转载 作者:搜寻专家 更新时间:2023-11-01 09:01:48 33 4
gpt4 key购买 nike

我有两个类,一个叫做 SQLiteExample,它有一个 switch 语句。在这个开关中是一个按钮单击监听器,我想在其中将生成的 int 读入 TextView,这是行不通的。我可以将 int 读入 Toast 消息并正确显示它。但是,当我将它读入 TextView 时,我不知道为什么在执行此操作时它会在 logcat 中出现错误。 TextView 已正确注册。

 public class SQLiteExample extends Activity implements OnClickListener {

case R.id.bSQLnumberofrows:
PlayGame ec = new PlayGame(this);
ec.open();
int x = ec.fetchPlacesCount();
ec.close();
showNumbers.setText(x); // setText not working
// Toast message works perfectly and displays value of "x" on screen
Toast.makeText(SQLiteExample.this, "value of x " + x , Toast.LENGTH_SHORT).show();
break;

这是 logcat 错误:

01-25 10:52:04.540: E/AndroidRuntime(8449): FATAL EXCEPTION: main
01-25 10:52:04.540: E/AndroidRuntime(8449): android.content.res.Resources$NotFoundException: String resource ID #0x5
01-25 10:52:04.540: E/AndroidRuntime(8449): at android.content.res.Resources.getText(Resources.java:247)
01-25 10:52:04.540: E/AndroidRuntime(8449): at android.widget.TextView.setText(TextView.java:3473)
01-25 10:52:04.540: E/AndroidRuntime(8449): at com.example.dbsample.SQLiteExample.onClick(SQLiteExample.java:127)

第 127 行是异常所在:showNumbers.setText(x);

另一个类是 PlayGame,它有一个方法可以将 SQLite 数据库中的行数作为 int 获取:

 public class PlayGame {

public int fetchPlacesCount() {
int count = 0;
Cursor q = ourDatabase.rawQuery("SELECT COUNT(*) from " + DATABASE_TABLE, null);
q.moveToFirst();
count = q.getInt(0);
return count;
}

最佳答案

您正在调用 setText() 的版本,它接受一个 int 参数,该参数预期引用 XML 文件中的字符串资源。您需要将 int 转换为 String 以便在 TextView 中显示它的值。请注意,在使用 Toast 时,您正在使用 "value of x "+ x 隐式执行此操作。您可以通过调用 String.valueOf(x)int 显式转换为 String

关于android - EditText 或 TextView 的 setText 方法在 switch 语句中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14514206/

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