2017-09-30 5 views
1

ゴール:
非同期のonProgressUpdateを使用してテキスト "Test"を表示します。非同期のonProgressUpdateでデータが表示される

問題:
なぜコードに「テスト」というテキストが表示されないのかわかりません。

どの部分が欠けていますか?

ありがとうございました!

情報:
*私は私はあなたのでAPI 24

MainActivity

package com.jfdimarzio.test1; 

import android.app.ProgressDialog; 
import android.os.AsyncTask; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.TextView; 

public class MainActivity extends AppCompatActivity 
{ 

    TextView finalResult; 
    TextView txt; 
    Button mybutton; 


    @Override 
    protected void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 


     finalResult = (TextView) findViewById(R.id.txtview_display); 
     mybutton = (Button) findViewById(R.id.btn_send); 

     mybutton.setOnClickListener(new View.OnClickListener() 
     { 
      @Override 
      public void onClick(View v) 
      { 
       AsyncTaskRunner runner = new AsyncTaskRunner(); 
       runner.execute("test"); 
      } 
     }); 

    } 





     private class AsyncTaskRunner extends AsyncTask<String, String, String> 
     { 



      @Override 
      protected String doInBackground(String... params) 
      { 
       return params[0]; 
      } 


      @Override 
      protected void onPostExecute(String text) 
      { 
       finalResult.setText("This is not from on ProgressUpdate"); 
      } 

      @Override 
      protected void onProgressUpdate(String... text) 
      { 
       finalResult.setText(text[0]); 
      } 
     } 


    } 

XML

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context="com.jfdimarzio.test1.MainActivity"> 

    <Button 
     android:id="@+id/btn_send" 
     android:layout_width="349dp" 
     android:layout_height="54dp" 
     android:layout_alignParentBottom="true" 
     android:layout_marginBottom="12dp" 
     android:text="Send" 
     tools:layout_editor_absoluteX="16dp" 
     tools:layout_editor_absoluteY="441dp" /> 



    <TextView 
     android:id="@+id/txtview_display" 
     android:layout_width="348dp" 
     android:layout_height="355dp" 
     android:layout_marginTop="15dp" 
     tools:layout_editor_absoluteX="16dp" 
     tools:layout_editor_absoluteY="16dp" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" /> 
</RelativeLayout> 

答えて

0

を使用しています*
アンドロイドで新たなんですあなたが01をする必要があります中間結果を公開するにはをクリックします。ツアー現行コードreturn params[0];onPostExecuteコールバックで受信されます。

コールバックにpublishProgress(params[0])を入れてください。あなたのdoInBackground()から

UPD

@Override 
protected String doInBackground(String... params){ 
publishProgress(params[0]);// this will go into onProgressUpdate 
return params[0];//return what you need in onPostExecute 
} 
+0

あなたは方法doInBackgroundで全体のコードを表示することができますか?それは理解しやすいです –

+0

@ What'sUPはアップデートを確認します。 –

+0

ありがとうございました! –

1

コールpublishProgress(...)

例:

 @Override 
     protected String doInBackground(String... params) 
     { 
      publishProgress("test"); 
      return params[0]; 
     } 
+0

doInBackgroundメソッドにコード全体を表示できますか?理解しやすいです –

+0

編集済みの回答を確認@ What'sUP – Kuls

+0

ありがとうございました! –

関連する問題