惰性列表,将JSON字符串转换为String数组

时间:2014-04-05 17:06:18

标签: android arrays json

我知道这一定是一个简单的错误,但我无法弄明白。我试图从json数组获取图像url列表并将其输入到字符串数组中。获取图像url的列表很容易,但是将它放入String数组中就会卡在那个部分。

///编辑

public class MainActivity extends Activity {

    ListView list;
    LazyAdapter adapter;
    private static String url = "http://192.168.1.6/webservice/events.php";
    private static final String TAG_IMG = "event_img";
    private static String myevent_img = null;
    ArrayList<HashMap<String, String>> eventsList;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        ServiceHandler sh = new ServiceHandler();
        String jsonStr = sh.makeServiceCall(url, ServiceHandler.GET);
        JSONArray jArray = null;
        JSONObject json;
        try {
            json = new JSONObject(jsonStr);
            jArray = json.getJSONArray("posts");
            Log.d("jarray", "jarray post "+jArray);
        } catch (JSONException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        for(int i=0;i<jArray.length();i++){
            JSONObject json_data;
            try {
                json_data = jArray.getJSONObject(i);
                 myevent_img = json_data.getString(TAG_IMG);
                Log.d("jobj ", "event_img"+myevent_img);

            } catch (JSONException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }


        list=(ListView)findViewById(R.id.list);
        adapter=new LazyAdapter(this, mStrings);
        list.setAdapter(adapter);

        Button b=(Button)findViewById(R.id.button1);
        b.setOnClickListener(listener);
    }



    };

    private String[] mStrings={myevent_img
    };
}

我在Logcat中没有收到任何错误。

1 个答案:

答案 0 :(得分:1)

您可以声明List然后返回一个数组。一个例子:

private List<String> _list = null;
private String[] mStrings = null;

然后在onCreate内你初始化&amp;填写列表:

    _list = new ArrayList<String>();

           ..........
       for(int i=0;i<jArray.length();i++){
                JSONObject json_data;
                try {
                    json_data = jArray.getJSONObject(i);
                     myevent_img = json_data.getString(TAG_IMG);
                     _list.add(myevent_img);
                ............

最后你写道:

mStrings=new String[_list.size()];
mStrings = _list.toArray(mStrings);

使用列表进行此类操作会更方便,但无论如何,这是个人认为的事情。