【问题标题】:setText method for EditText or TextView not working inside of switch statementEditText 或 TextView 的 setText 方法在 switch 语句中不起作用
【发布时间】:2013-01-25 02:06:15
【问题描述】:

我有两个类,一个叫做 SQLiteExample,它有一个 switch 语句。在此开关中是一个按钮单击侦听器,我想在其中将生成的 int 读入 TextView,这不起作用。我可以将 int 读入 Toast 消息并正确显示它。但是,当我将它读入文本视图时,我不知道为什么当我这样做时它会在 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;
    }

【问题讨论】:

    标签: android textview android-edittext settext


    【解决方案1】:

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

    【讨论】:

    • 这间接为我解决了另一个我在搜索 4 小时后没有意识到的问题。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多