2013-07-09 5 views
16

asynctaskに単一の文字列を渡したいと思います。誰が私にそれがどのように表示されますか?私getEntityは、メソッドgetEntity(活動、文字列、EntityGetListener)を必要とするが、私は、この文字列は、[]Android Asynctaskが単一の文字列を渡す

String pass= story.get(position).getEntity(); 

     new RemoteDataTask().execute(pass); 





private class RemoteDataTask extends AsyncTask<String, String, Long> { 

    @Override 
    protected Long doInBackground(String... params) { 
     // TODO Auto-generated method stub 
     EntityUtils.getEntity(activity, params, new EntityGetListener() { 
      @Override 
      public void onGet(Entity entity) { 

       viewcount = entity.getEntityStats().getViews(); 
      } 

      @Override 
      public void onError(SocializeException error) { 

      } 
     }); 
     return null; 
    } 

} 
+3

private RemoteDataTask mTask; private void doStuff(){ String pass = "meow"; // story.get(position).getEntity(); mTask = new RemoteDataTask(pass); mTask.execute(); } 
パス 'のparams [0]'代わり詳細はgetEntity'方法 'へparams''のhttp://docs.oracle.com/javase/1.5.0/docs/guide([可変引数]参照します/language/varargs.html) –

答えて

48

あなたが既に持っている渡しておく。この

 new RemoteDataTask().execute(pass); // assuming pass is a string 

doInbackground

 @Override 
    protected Long doInBackground(String... params) { 

      String s = params[0]; // here's youre string 
      ...  //rest of the code. 
    } 

することができます詳細を見る@

http://developer.android.com/reference/android/os/AsyncTask.html

+0

'String value 'を' AsyncTask'クラスに渡すと、その変数は内部クラスからアクセスされます。最終として宣言する必要があります。しかし、私は時々変数の値を変更する必要があります。この問題を解決するにはどうすればいいですか? –

+0

@EJChathurangaクラス変数ではない変数にアクセスしていて、有名な内部クラスでアクセスされていれば、それは最終的でなければなりません。 https://stackoverflow.com/questions/4732544/why-are-only-final-variables-accessible-in-anonymous-classを読んでください。これを克服するために、使用する前に変数をinitializeクラスのメンバにすることができます – Raghunandan

5

コンストラクタを使用してAsyncTaskをビルドすることができます。アプリケーションで

public class RemoteDataTask extends AsyncTask<String, String, Long> { 

    private String data; 

    public RemoteDataTask(String passedData) { 
     data = passedData; 
    } 

    @Override 
    protected String doInBackground(Context... params) { 
     // you can access "data" variable here. 
     EntityUtils.getEntity(activity, params, new EntityGetListener() { 
      @Override 
      public void onGet(Entity entity) { 
       viewcount = entity.getEntityStats().getViews(); 
      } 
      @Override 
      public void onError(SocializeException error) { 
      } 
     }); 
     return null; 
    } 
} 

ActivityServiceなど)は、使用することができます。

関連する問題