0

リストビューに、MySQL データベースから取得したデータが入力されていません。Web サービスをテストしましたが、すべてが完璧です。私はそれをデバッグしていましたが、asynctask 内にブレークポイントを設定すると、そこに行かないことに気付きました。実行コマンドから抜けましたが、中には入りませんでした。すべてがエラーなしで正常に実行されます。私は混乱していて新しいので、優しくしてください。

public class Favorites extends Activity{
  UserFunctions userFunctions  = new UserFunctions();
  ArrayList<String> zipcodes = new ArrayList<String>(0);
  ArrayAdapter<String> arrayAdapter1;

@Override
protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.favoritespage);
  arrayAdapter1 = new ArrayAdapter<String>(Favorites.this,android.R.layout.activity_list_item,zipcodes);
  new DownloadDataTask().execute();
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
  // Inflate the menu; this adds items to the action bar if it is present.
  getMenuInflater().inflate(R.menu.activity_main_screen, menu);
  return true;
}

private class DownloadDataTask extends AsyncTask<JSONArray, JSONArray, ArrayList<String> > {
  @Override
  protected ArrayList<String> doInBackground(JSONArray... params) {
    JSONArray json = userFunctions.ziplistrequest("37.5", "140.45", "20");
    for(int i=0; i < json.length() ; i++) {
      JSONObject jarray = null;
      try {
        jarray = json.getJSONObject(i);
        String zip = jarray.getString("ZIPCODE");
        zipcodes.add(zip);
        arrayAdapter1.add(zip);
        Log.d(zip,"Output");
      } catch (JSONException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
      }
    }
    return zipcodes;
  }
  protected void onPostExecute(){
    ListView listView = (ListView) findViewById(R.id.list);
    listView.setAdapter(arrayAdapter1);
  }
}

追加の回答が必要な場合はお知らせください。

4

1 に答える 1

0

良いもの。Q&Aクロージャと純粋なSOポイント欲の答えとして私のコメントを追加します:)

デバッグポイントを非同期タスクdoInBackgroundに直接貼り付けるとどうなりますか?コンパイラ/クラス生成の問題が発生した場合に備えて、プロジェクトをクリーンアップしてビルドします(Eclipse IDEを使用している場合)。

于 2013-02-04T11:29:47.453 に答える