Android Change textView来自另一个方法/类的文本
单击按钮1后,将调用另一个布局和另一个类。 现在我想将textView的文本从类2中更改出来,这会导致java.lang.NullPointerException导致应用程序崩溃 第1类的重要部分Android Change textView来自另一个方法/类的文本,android,Android,单击按钮1后,将调用另一个布局和另一个类。 现在我想将textView的文本从类2中更改出来,这会导致java.lang.NullPointerException导致应用程序崩溃 第1类的重要部分 public static TextView A; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.lay
public static TextView A;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
[第1课的按钮]
setContentView(R.layout.raten);
final TextView A = (TextView) findViewById(R.id.A); //the textview I wanna chage
max = 10;
Easy easy = new Easy(); // the other class
easy.e();
[现在是类1中应该更改文本的方法]
public static void Tx(int i)
{
A.setText("adsfasdf");
}
[第2类的重要部分(“简易”)]
public void e(){
System.out.println(“称为class easy”);
int max=MainActivity.max;
系统输出打印项次(最大值);
对于(inti=0;i而不是定义一个新的局部变量a,只需分配给静态变量
改变
final TextView A = (TextView) findViewById(R.id.A); //the textview I wanna chage
到
从A
和Tx
(当然,您的main活动必须在调用easy.e()
时创建)非常感谢您的回答,但不幸的是,这并没有解决任何问题,我得到了与以前完全相同的错误:/您是否验证了对findViewById的调用没有返回null?我已经提到,findViewById不是由Tx()读取的。Tx()使用公共文本视图A;
这就是我意识到的问题。您有一个类变量和一个局部变量都称为A。您分配给局部变量,因此类变量当然仍然为null。当您分配给类变量时,它仍然为null,因此可能对findViewById的调用返回null。您应该尽量避免statics,也许您可以将一个指向类1实例的指针传递给Easy.eSo,我是这样做的,“无法从MainActivity类型静态引用非静态方法Tx(int)”。调用Easy.e()时必须创建MainActivity是什么意思?这样调用它MainActivity.this.Tx(I);
很抱歉浪费您的时间,但是现在我在该方法上得到了“没有MainActivity类型的封闭实例在作用域中是可访问的”。只是尝试了将MainActivity作为对象,但结果是相同的
final TextView A = (TextView) findViewById(R.id.A); //the textview I wanna chage
A = (TextView) findViewById(R.id.A); //the textview I wanna chage