2017-09-30 1 views
1

목표 :
비동기의 onProgressUpdate을 사용하여 "테스트"텍스트를 표시하십시오.비동기의 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

당신의 doInBackground()에서 전화 publishProgress(...).

예 :

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

doInBackground 메서드에 전체 코드를 표시 할 수 있습니까? 이해하기 쉽습니다 –

+0

수정 된 내용 확인 @ What'sUP – Kuls

+0

도움을 주셔서 감사합니다! –

관련 문제