【问题标题】:How to use global variable in onCreate method of Android如何在Android的onCreate方法中使用全局变量
【发布时间】:2017-11-13 09:05:56
【问题描述】:

我对 Android 世界非常陌生。我只是想检查如何在 Android 的 onCreate() 方法中使用全局变量,每当我尝试这样做时,它都会突然关闭。当我在代码中显示一些随机文本时,它显示成功。

这是我的代码:

public class MyActivity extends AppCompatActivity
{
    public static int num_i=0;

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_find_beer);
        TextView tv = findViewById(R.id.textView);
        tv.setText(num_i);
        num_i++;
    }
}



请帮助我。

【问题讨论】:

  • 好的,假设我是魔术师,并且可以看到您的异常的堆栈跟踪。它告诉您找不到标识符为 的资源。发生这种情况是因为TextView.setText() 有不止一个过载。因此,您正在调用的TextView.setText(int) 需要将字符串资源标识符作为参数(例如R.string.something)。如果要在 TextVIew 中显示 int,首先必须将其转换为字符串。
  • 这个问题的标题完全是误导,您能否更新您的问题标题以更多地反映setTextint 参数问题?

标签: java android oncreate


【解决方案1】:

设置要显示的文本。它将 String 作为参数而不是数字

示例tv.setText("PREM");

使用字符串资源标识符设置要显示的文本。

示例tv.setText(R.string.app_name);

首先您必须将您的 int 值转换为 String

试试这个用法

tv.setText(String.valueOf(num_i));

tv.setText(num_i+"");

而不是这个

 tv.setText(num_i);

【讨论】:

  • 也存在:void setText (int resid),它以 int 作为参数
  • 我只是在更新感谢您的建议@pleft
【解决方案2】:

不要将tv.setText() 与数字一起用作参数。尝试使用String.valueOf(num_i)

所以在你的情况下: tv.setText(String.valueOf(num_i))tv.setText(num_i + "");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多