java - 可运行参数

标签 java android parameters runnable

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

runOnUiThread 上的“responseView.setText”被注释,因为我的 android studio 总是打印我的responseView为空,而且我不明白为什么会这样,因为我正在使用正确查看 xml。

有人可以在这里给我提示吗?我测试了很多东西,asyncTask,多线程,但这是我“几乎”工作的唯一方法。

提前谢谢您。

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"/>

Java文件代码:

 final TextView responseView = (TextView) activity.findViewById(R.id.textView);
                   new Thread(){
                       public void run(){
                           try{
                             HttpResponse httpResponse = httpclient.execute(httppost);
                             final HttpEntity entity = httpResponse.getEntity();
                             final String entityFinal = entity.getContent().toString();
                           }catch(IOException e){
                               System.out.println(e.getMessage());
                           }
                           activity.runOnUiThread(new Runnable() {
                               @Override
                               public void run() {
                                   //responseView.setText(entityFinal);
                                   System.out.println(responseView);
                               }
                           });
                       }
                   }.start();

最佳答案

就你的情况而言,移动

activity.runOnUiThread(new Runnable() {
     @Override
     public void run() {
       //responseView.setText(entityFinal);
       System.out.println(responseView);
    }
);

进入try block 应该就足够了。一般来说,您始终可以使用一个类来实现 Runnable,并使用带有任意数量/类型参数的构造函数。例如

public class MyRunnable implements Runnable {

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

     @Override
     public void run() { 
         System.out.println(mString);
     }
}

关于java - 可运行参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26994488/

相关文章:

java - 如何使用 selenium 和 Java 从 Jenkins 获取测试运行 ID

java - Android firebase onStart 和 onStop 解释

java - shutdownNow 与执行程序服务

java - 需要在AsynkTask中等待broadcastReceiver中的事件

javascript - 函数如何适应传递不同对象作为参数的调用?

swift - 开括号后的参数

java - 如何在 Azure DevOps 上部署 Java Web 应用程序

Android 应用程序未显示在某些设备上的 Play 商店中

android - 方法 'getSupportFragmentManager()' 不受支持

c# - 将带参数的函数传递给不期望任何参数的委托(delegate)