Java Runnable上的参数

Java Runnable上的参数,java,android,parameters,runnable,Java,Android,Parameters,Runnable,我试图将“entityFinal”传递给run()方法,但由于它是可运行的,所以我没有任何参数 runOnUiThread上的“responseView.setText”被注释,因为我的android studio总是打印我的responseView为null,我不明白为什么为null,因为我正确地使用了xml上的视图 有人能给我一个提示吗?我测试了很多东西,异步任务,多线程,但这是我“几乎”工作的唯一方法 提前谢谢你 xml: <TextView androi

我试图将“entityFinal”传递给run()方法,但由于它是可运行的,所以我没有任何参数

runOnUiThread上的“responseView.setText”被注释,因为我的android studio总是打印我的responseView为null,我不明白为什么为null,因为我正确地使用了xml上的视图

有人能给我一个提示吗?我测试了很多东西,异步任务,多线程,但这是我“几乎”工作的唯一方法

提前谢谢你

xml:

  <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:text="@string/Blank"
            android:id="@+id/textView"
            android:layout_below="@+id/button2"
            android:layout_alignLeft="@+id/button2"
            android:layout_alignStart="@+id/button2"
            android:layout_marginTop="50dp"/>
对你来说,搬家

activity.runOnUiThread(new Runnable() {
     @Override
     public void run() {
       //responseView.setText(entityFinal);
       System.out.println(responseView);
    }
);
进入
try
块就足够了。通常,您可以使用一个构造函数来实现Runnable的类,该构造函数接受任意数量/类型的参数。比如说

public class MyRunnable implements Runnable {

     private final String mString;
     public MyRunnable(String string) {
          mString = string;
     }

     @Override
     public void run() { 
         System.out.println(mString);
     }
}
您可以这样使用:

new Thread(
    new Runnable() {
        @Override
        public void run() {
           System.out.println(responseView);
        }
    }).start();

好的,这解决了一些错误,但现在我无法找出为什么我的“textView”在使用时为空。当我第一次创建它时,它的widget.TextView是正确的,但是当我使用它设置“entityFinal”的值时,TextView是空的。原因是您可能忘记了初始化它。你应该经常检查空对象。如果你发现了问题,我初始化的时候出错了。谢谢你的帮助!
new Thread(
    new Runnable() {
        @Override
        public void run() {
           System.out.println(responseView);
        }
    }).start();