我在onCreate中有这个:
final TextView text1 = (TextView) findViewById(R.id.txtNextAlarm);
我正在尝试在同一个类中的方法中设置文本:
public static void NextTxt(){
text1.setText("");
}
但它不承认“text1”.
解决方法:
问题是静态方法不与任何特定对象相关联,而是与整个类相关联.因此,他们只能在您的班级中看到静态字段.你的text1变量甚至不是,如果你说的是真的.相反,它是一个局部变量,只存在于onCreate()方法的长度.如果你知道你只有一个你的活动实例(这可能不是一个不合理的假设),你可以做的就是使用
private static TextView text1;
在你的班级的顶部(或者,基本上,在方法之外的任何地方).最终修饰符不会给你任何东西.您选择是公开还是私人,但我默认倾向于私人(除非有其他原因).
另一种方法是问问自己为什么NextTxt()是静态的;如果你使它成为普通的实例方法,那么你仍然需要在类中声明text1,但它不需要是静态的.但是你需要一个实例来调用它.
标签:android,java,methods,textview
来源: https://codeday.me/bug/20190723/1510443.html