0

これが些細な答えである場合はお詫び申し上げますが、このシナリオのパターン/フローを思い付くことができないようです.

リクエストが完了したときにコールバックを提供するAndroid Asynchronous Http Clientを使用しています。ライブラリをどこで使用するかわからないため、ここで混乱していると思います。

これが私のセットアップです:

DataClass.java

 public class DataClass {
     String created_date = null;
     String username = null;
     String details = null;
     private static AsyncHttpClient client;

     public DataClass(String id) {
         client = new AsyncHttpClient();
         GetDataObject(id);
     }

     public void GetDataObject(String id) {
          //...build RequestParams()
          client.post(get_data_url, params, new JsonHttpResponseHandler(){
              public void onSuccess(int statusCode, Header[] headers, byte[] response) {
                 String response_string = new String(response);
                 //...parse JsonObject
                 created_data = jsonObject.getString("date");
                 username = jsonObject.getString("username");
                 details = jsonObject.getString("details");
                 // all dataClass instance variables accessed here are null.
                 Log.d("Created: ", created_data); //returns somedate
                 Log.d("Username: ", username); //returns someusername   
              }
          });
     }
 }

ShowDataActivity.java

 public class ShowDataActivity extends Activity {

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

         Intent intent = getIntent();
         String id = intent.getStringExtra("id");
         DataClass dataClass = new DataClass(id);

         // all dataClass instance variables accessed here are null.
         Log.d("Created: ", dataClass.created_data); //returns null
         Log.d("Username: ", dataClass.username); //returns null

     }
 }

RestClient コールバック内のインスタンス変数の割り当てにブレークポイントを配置すると、ブレークポイントが null ではなく、正しいデータが含まれていることがわかります。

私はしばらく探していて、LoadersContentObserverBoradcastReceiversなどの組み込みの Android ライブラリが役立つかもしれませんが、それらをAndroid Asynchronous Http Clientと組み合わせて使用​​する方法がわかりません。

上記の例は完全ではありませんが、関連する情報はすべてそこにあります。

さらに情報が必要な場合はお知らせください。ありがとうございました。

問題: ShowDataActivity で DataClass をインスタンス化すると、dataClass インスタンス変数が null になります。オブジェクトをインスタンス化した後のコールバックで変数が割り当てられているためだと思います。これを尋ねる方法がよくわかりませんがDataClass dataClass = new DataClass(id);、インターネットからのデータで初期化されることを確認するにはどうすればよいですか。

4

0 に答える 0