我有一点问题,我没有看到它。
我检索Json数据(JSONArray
),我想在List
中创建所有名称的JSONArray
,就像这样。
List list = new ArrayList<String>();
for(int i=0;i < data.length();i++){
list.add(data.getJSONObject(i).getString("names").toString());
}
我想把这个列表放在`ListView'中,所以我这样做了:
ArrayList<String> test = history_share.list;
names_list = (String[]) test.toArray();
ArrayAdapter<String> adapter = new ArrayAdapter(this,
android.R.layout.simple_list_item_1, names_list);
setListAdapter(adapter);
(history_share是我为从api获取json数据而创建的方法之一。 Eclipse没有看到任何错误,我也没有看到。
有人可以帮帮我吗?
答案 0 :(得分:0)
为什么你的方法在名字中有下划线?按惯例的方法以小写字母开头。例如myMethod()
。类名以MyClass
之类的大写字母开头。你应该坚持下去。
同样history_share
不是您发布代码的方法,而且您无法通过调用方式从方法中检索任何内容。
getter方法只返回定义的成员。我很惊讶Eclipse没有强调这一点。你确定错误检查已开启吗?
更新:将您的类命名为已有的类通常是一个非常糟糕的主意,如果您计划在某处使用原始类或任何派生该类的类,则会更糟。在原始的Connection类中,我无法发现任何名为list的静态成员,这会导致您假设已创建自己的Connection类。这不一定是这里的问题,但如果你继续这样做,将来可能会引发问题。
答案 1 :(得分:0)
for(int i=0;i < data.length();i++){
list.add(data.getJSONObject(i).getString("names").toString());
}
.getString("names") returns String, remove .toString()
此外,
ArrayAdapter<String> adapter = new ArrayAdapter(this,
android.R.layout.simple_list_item_1, names_list);
替换为
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, names_list);
答案 2 :(得分:0)
您使用ArrayList
与Hashmap
:
ArrayList<HashMap<String, String>> comunitylist = new ArrayList<HashMap<String, String>>();
String url =_url + _uid + uid;
JSONParstring jParser = new JSONParstring();
// getting JSON string from URL
String json = jParser.getJSONFromUrl(url,apikey);
Log.e("kPN", json);
try
{
JSONObject jobj = new JSONObject(json);
Log.e("kPN", json.toString());
System.out.print(json);
JSONArray comarray = jobj.getJSONArray(TAG_COMMU);
for(int i = 0; i <= comarray.length(); i++){
JSONObject c = comarray.getJSONObject(i);
Log.w("obj", c.toString());
JSONObject d = c.getJSONObject(TAG_PERSON);
Log.w("obj", d.toString());
String name =d.getString(TAG_NAME);
Log.w("name", name);
String nick =d.getString(TAG_NICK);
String home = d.getString(TAG_HOME);
HashMap<String, String> map = new HashMap<String, String>();
map.put(TAG_NAME, name);
map.put(TAG_NICK, nick);
}
}
catch (JSONException ie)
{
}
list=(ListView)findViewById(R.id.list);
adapter=new Lazycommunity(this,listz);
list.setAdapter(adapter);
list.setOnItemClickListener(new OnItemClickListener() {
@SuppressWarnings("unchecked")
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
//Having Trouble with this line, how to retrieve value???
HashMap<String, String> map2 = (HashMap<String, String>) list.getAdapter().getItem(position);
Intent in = new Intent(getApplicationContext(), Communityprofile.class);
in.putExtra(TAG_NAME, map2.get(TAG_NAME));
in.putExtra(TAG_IMG, map2.get(TAG_IMG));
startActivity(in);
}
});