0

ここに別のAndroid初心者!

わかりました。Toastを使用してエラーをチェックするのを手伝ってくれました。403禁止エラーが発生しましたが、原因がわかりません。私の別の関数がデータベースからデータを返すので、URLは正しいです。

public class FillKeg extends Activity {

    Spinner spinBeerList;
    ArrayList<String> BeerList;
    ArrayAdapter<String> adapter;

    JSONArray jArray;
    String result = null;
    InputStream is = null;
    StringBuilder sb = null;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.fillkeg);
        spinBeerList = (Spinner)findViewById(R.id.spinBeerList);
        BeerList = new ArrayList<String>();
        new getBeerList().execute("http://*****/kegdroid/getBeerList.php");
        adapter = new ArrayAdapter<String>(this,
            android.R.layout.simple_spinner_item, BeerList);    
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinBeerList.setAdapter(adapter);
    }

    private class getBeerList extends AsyncTask<String, Void, String> {

        protected String doInBackground(String... urls) {
            //http post
            for (String url : urls) {
                DefaultHttpClient httpclient = new DefaultHttpClient();
                HttpPost httppost = new HttpPost(url);
                try{
                    HttpResponse response = httpclient.execute(httppost);
                    HttpEntity entity = response.getEntity();
                    is = entity.getContent();

                    BufferedReader reader = new BufferedReader(new InputStreamReader(is, "iso-8859-1"), 8);
                    sb = new StringBuilder();
                    sb.append(reader.readLine() + "\n");

                    String line = "0";
                    while ((line = reader.readLine()) != null) {
                            sb.append(line + "\n");
                    }
                    is.close();
                    result = sb.toString();
                }
                catch(Exception e){
                    Log.e("log_tag", "Error in http connection" + e.toString());
                }
            }
            return result;
        }

        protected void onPostExecute(String result){
            try{
                jArray = new JSONArray(result);
                JSONObject json_data = null;
                for(int i = 0; i < jArray.length(); i++){
                    json_data = jArray.getJSONObject(i);
                    BeerList.add(json_data.getString("ContentsName"));
                }    
            }
            catch(JSONException ex){
                ex.printStackTrace();
            } 
            catch (ParseException ex) {
                ex.printStackTrace();
            }
        }

    }
}
4

2 に答える 2

0

私はこれについて本当に愚かだと感じますが、私のエラーはアプリケーションコードではなくApache構成に起因していました。WAMPインストールの最近のApacheアップデートにより、ネットワークIPへの呼び出しからのアクセスが拒否されました。

私のコードの他の領域を解決するのを手伝ってくれたOcuSとBrianCooleyに大いに感謝します!

于 2012-04-11T03:06:04.140 に答える
0

を呼び出さずにArrayListバッキングを更新しています。の末尾に呼び出しを追加してみてください。AdapternotifyDataSetChangedadapter.notifyDataSetChanged();onPostExecute

adapter.add(json_data.getString("ContentsName"));または、同様の呼び出しの代わりに呼び出すことができ、自動的に更新されますBeerListSpinner

于 2012-04-10T23:56:21.573 に答える