0

次の変数を持つアクティビティがあります

static CharSequence[] categories;

JSONを使用してデータを受信して​​います

try
{
    Thread cThread = new Thread(new getStringContent("http://192.168.0.101/curltest/getcategories.php"));
    cThread.start();            
}
catch(Exception ex)
{
    Log.i("YGo", ex.toString());
}

public class getStringContent implements Runnable {
        String suri;
        public getStringContent(String uri)
        {
            suri = uri; 
        }
        @Override
        public void run() {         
            try {
                JSONArray jsonArray = new JSONArray(getPageContent(suri));
                for (int i = 0; i < jsonArray.length(); i++) {
                    JSONArray jsonSArray = jsonArray.getJSONArray(i);
                    categories = new CharSequence[jsonArray.length()];
                    categories[i] = jsonSArray.getString(0);
                    Log.i("YGo", categories[i].toString());
                }               
            } catch (JSONException e) {
                // TODO Auto-generated catch block
                Log.e("YGo", e.toString());
            }
            dialog.dismiss();
        }       
    }

GUIスレッドでボタンをクリックすると、受信したデータを表示したいと思います。

for(int i=0; i<categories.length; i++)
{
   Log.i("Ygo", String.valueOf(categories[i]));
   Log.i("Ygo", String.valueOf(selectedData[i]));
}
AlertDialog.Builder builder = new AlertDialog.Builder(PreferencesClass.this);
            builder.setTitle("Pick categories");

            builder.setMultiChoiceItems(categories, selectedData, onClickCatChooser);           
            builder.setPositiveButton("Ok", clickedOnClickCatOk);

            AlertDialog alert = builder.create();
            alert.show();

しかし、categories変数にはnull,null,Data3、の代わりに、がData1ありData2ますnull。なんで?

4

2 に答える 2

4

この線

categories = new CharSequence[jsonArray.length()];

forループの外側にある必要があります。ループ内の反復ごとにデータをリセットするため、最終的には最後の操作からのデータのみが残ります。

于 2012-07-29T11:46:18.310 に答える
1

data1&2のパスが適切に定義されていないことが原因である可能性があります。categories= new CharSequence [jsonArray.length()];を試してください。ループの外側。

于 2012-07-29T11:48:41.257 に答える