我知道这一定是一个简单的错误,但我无法弄明白。我试图从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中没有收到任何错误。
答案 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);
使用列表进行此类操作会更方便,但无论如何,这是个人认为的事情。