Java 我的简单适配器无法填充我的listview
我正在创建一个android应用程序,我的代码将循环遍历json数据,如果找到与我放入的字符串(在本例中为“Guil Hernandez”)匹配的字符串,那么它将把该名称添加到hashmaps的数组列表中。然后,我用一个简单的适配器填充我的listview。一切正常,但我的listview不会出现。我的排序“算法”错了吗?另外,如果您知道更好的排序方法来查找匹配项,请告诉我。我还是个新手。提前谢谢你Java 我的简单适配器无法填充我的listview,java,android,json,hashmap,simpleadapter,Java,Android,Json,Hashmap,Simpleadapter,我正在创建一个android应用程序,我的代码将循环遍历json数据,如果找到与我放入的字符串(在本例中为“Guil Hernandez”)匹配的字符串,那么它将把该名称添加到hashmaps的数组列表中。然后,我用一个简单的适配器填充我的listview。一切正常,但我的listview不会出现。我的排序“算法”错了吗?另外,如果您知道更好的排序方法来查找匹配项,请告诉我。我还是个新手。提前谢谢你 private void handleResponse() { if (mNa
private void handleResponse() {
if (mNameDataJson == null ) {
// TODO: handle error
} else {
try {
JSONArray namesArray = mNameDataJson.getJSONArray("posts");
ArrayList<HashMap<String , String> > nameArrayList = new ArrayList<HashMap<String, String>>();
for ( int i = 0 ; i < namesArray.length() ; i++ ) {
JSONObject unit = namesArray.getJSONObject(i);
String name = unit.getString(KEY_NAME);
name = Html.fromHtml(name).toString();
String title = unit.getString(KEY_TITLE);
title = Html.fromHtml(title).toString();
HashMap<String , String> hashMap = new HashMap<String, String>();
if (name == "Guil Hernandez") {
hashMap.put(KEY_NAME, name);
hashMap.put(KEY_TITLE, title);
nameArrayList.add(hashMap);
} else {
Log.v(TAG , "no match");
}
}
String[] keys = { KEY_NAME , KEY_TITLE };
int[] ids = {android.R.id.text1 , android.R.id.text2};
SimpleAdapter adapter = new SimpleAdapter(MyActivity.this , nameArrayList , android.R.layout.simple_list_item_2,
keys , ids);
setListAdapter(adapter);
} catch (JSONException e) {
e.printStackTrace();
}
}
}
private void handleResponse(){
if(mNameDataJson==null){
//TODO:句柄错误
}否则{
试一试{
JSONArray namesArray=mNameDataJson.getJSONArray(“posts”);
ArrayList name ArrayList=新的ArrayList();
对于(int i=0;i
完整代码如下:
公共类MyActivity扩展了ListActivity{
private JSONObject mNameDataJson;
private final String TAG = MyActivity.class.getSimpleName();
private final String KEY_NAME = "author";
private final String KEY_TITLE = "title";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my);
GetNameData getNameData = new GetNameData();
getNameData.execute();
}
private void handleResponse() {
if (mNameDataJson == null ) {
// TODO: handle error
} else {
try {
JSONArray namesArray = mNameDataJson.getJSONArray("posts");
ArrayList<HashMap<String , String> > nameArrayList = new ArrayList<HashMap<String, String>>();
for ( int i = 0 ; i < namesArray.length() ; i++ ) {
JSONObject unit = namesArray.getJSONObject(i);
String name = unit.getString(KEY_NAME);
name = Html.fromHtml(name).toString();
String title = unit.getString(KEY_TITLE);
title = Html.fromHtml(title).toString();
HashMap<String , String> hashMap = new HashMap<String, String>();
if (name == "Guil Hernandez") {
hashMap.put(KEY_NAME, name);
hashMap.put(KEY_TITLE, title);
nameArrayList.add(hashMap);
} else {
Log.v(TAG , "no match");
}
}
String[] keys = { KEY_NAME , KEY_TITLE };
int[] ids = {android.R.id.text1 , android.R.id.text2};
SimpleAdapter adapter = new SimpleAdapter(MyActivity.this , nameArrayList , android.R.layout.simple_list_item_2,
keys , ids);
setListAdapter(adapter);
} catch (JSONException e) {
e.printStackTrace();
}
}
}
private class GetNameData extends AsyncTask<Object, Void, JSONObject> {
JSONObject jsonResponse = null;
@Override
protected JSONObject doInBackground(Object... objects) {
String nameUrl = "http://blog.teamtreehouse.com/api/get_recent_summary/?count=20";
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url(nameUrl)
.build();
Call call = client.newCall(request);
call.enqueue(new Callback() {
@Override
public void onFailure(Request request, IOException e) {
}
@Override
public void onResponse(Response response) throws IOException {
String responseString = response.body().string();
Log.v(TAG , responseString);
try {
jsonResponse = new JSONObject(responseString);
} catch (JSONException e) {
e.printStackTrace();
}
}
});
return jsonResponse;
}
@Override
protected void onPostExecute(JSONObject jsonObject) {
mNameDataJson = jsonObject;
handleResponse();
}
}
private JSONObject mNameDataJson;
private final String TAG=MyActivity.class.getSimpleName();
私有最终字符串密钥\u NAME=“author”;
私有最终字符串键\u TITLE=“TITLE”;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my);
GetNameData GetNameData=新建GetNameData();
getNameData.execute();
}
私有无效HandlerResponse(){
if(mNameDataJson==null){
//TODO:句柄错误
}否则{
试一试{
JSONArray namesArray=mNameDataJson.getJSONArray(“posts”);
ArrayList name ArrayList=新的ArrayList();
对于(int i=0;i
}如果要比较字符串,请使用
equals()
。像这样:
if (name.equals("Guil Hernandez")) {
hashMap.put(KEY_NAME, name);
hashMap.put(KEY_TITLE, title);
nameArrayList.add(hashMap);
}
如果使用默认数据填充
namearaylist
,它是否显示在列表视图中?