2011-06-20 16 views
1

私は、ボタンをクリックするとasynctaskがonclickで呼び出されるというプログラムを作っています。しかし、ユーザーがボタンをクリックするたびにテキストが変わります...どうすれば非同期メソッドを利用することができますか?ユーザーがボタンのテキストの変更を押すevertimeあなたが見ることができるように、ここでAndroid AsyncTaskインスタンスまたはクラス

は私が

public void Talk(){  

    text1.setText("Welcome what is your name?"); 

    respond.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
     name = edit.getText().toString(); 

     new AsyncTask<Void, Integer, Void>(){ 
      @Override 
      protected Void doInBackground(Void... arg0) { 
       try {     
        Thread.sleep(850);    
       } catch (InterruptedException e) {       
        e.printStackTrace();    
       }    

       return null; 
      } 

      @Override   
      protected void onPostExecute(Void result) {    
       text1.setText("Nice to meet you "+name); 
       dismissDialog(typeBar); 
      } 

      @Override   
      protected void onPreExecute() { 
       typeBar = 0; 
       showDialog(typeBar); 
      }  
     }.execute((Void)null);  
     } 
    }); 
} 

何を意味するかの一例です。間違いなくボタンをクリックすると、ayncTaskメソッドをタイプするのが面倒です。誰でも私がこれを行う方法を知っていますか?

+0

なぜあなたはこれを行うにはAsyncTaskを使用している:あなたの活動の中にプライベートクラスを作成しますか? – Spidy

答えて

1

私はあなたが何をしているにもかかわらずAsyncTaskを使用している理由を無視します。インラインクラスは使用しないでください。

private class MyAsyncTask extends AsyncTask<String, Void, Void> 

をし、それを再利用し、例えば:

MyAsyncTask.execute("Whatever")