把照片列表的数据获取并显示在页面上,为下一个显示图片页面做好了准备,上代码,已经上传到GitHub。
ServerAlbumListActivity.java
package cn.cloudfk.taoalbum.activity;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import cn.cloudfk.taoalbum.R;
import cn.cloudfk.taoalbum.data.dto.ResourceDto;
import cn.cloudfk.taoalbum.data.dto.ResultData;
import cn.cloudfk.taoalbum.utils.HttpAssist;
import cn.cloudfk.taoalbum.utils.KitJson;
public class ServerAlbumListActivity extends AppCompatActivity {
private List<ResourceDto> resList = null;
List<Map<String, String>> list;
private static final String TAG = "MainActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_server_album_list);
new Thread(new Runnable() {
@Override
public void run() {
String content = HttpAssist.getInstance().getImgList();
if (content!=null){
Log.i(TAG,"content.length="+content.length());
ResultData ret = KitJson.toResultData(content);
if (ret!=null){
Log.i(TAG,"ret.state="+ret.getState());
if(ret.isSuccess()){
if (ret.getData()!=null){
resList = ( List<ResourceDto>)ret.getData();
if (resList!=null && !resList.isEmpty()) {
list = new ArrayList<Map<String, String>>();
for (ResourceDto res : resList) {
Map<String, String> map = new HashMap<String, String>();
map.put("fileName", res.getFileName());
list.add(map);
}
}
}
}
}
}
}
}).start();
boolean isGetList = false;
ListView lv = findViewById(R.id.server_listView);
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) {
Map<String, String> map = list.get(arg2);
String str = "";
str += map.get("fileName");
Log.i(TAG,"This was selected photo:"+str);
}
});
while (true){
try {
if (isGetList){
break;
}
if (list!=null && !list.isEmpty() ){
SimpleAdapter adapter = new SimpleAdapter(this,list,R.layout.activity_album_ui_img_item,
new String[] { "fileName" },new int[] { R.id.album_ui_img_fileName});
lv.setAdapter(adapter);
isGetList= true;
}
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
处理后端返回的JSON
public static ResultData toResultData(String json){
ResultData ret =new ResultData();
try {
JSONObject object = new JSONObject(json);
if (object!=null){
ret.setState(object.getInt("State"));
try {
JSONArray data = object.getJSONArray("Data");
if (data!=null && data.length()>0){
List<ResourceDto> resList = new ArrayList<ResourceDto>();
for (int i=0; i < data.length();i++) {
ResourceDto resDto = new ResourceDto();
JSONObject value = data.getJSONObject(i);
resDto.setFileName(value.getString("FileName"));
resDto.setFilePath(value.getString("FilePath"));
resDto.setFileSize(value.getInt("FileSize"));
resList.add(resDto);
}
ret.setData(resList);
}
}catch (RuntimeException e){
ret.setData(object.getJSONObject("Data"));
}
}
} catch (JSONException e) {
e.printStackTrace();
}
return ret;
}