package my.project.easyrecharge.activity;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.List;
import my.project.easyrecharge.F.Method;
import my.project.easyrecharge.R;
import my.project.easyrecharge.adapter.AdaApart;
import my.project.easyrecharge.contants.Key;
import my.project.easyrecharge.model.Apart;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
import com.google.gson.reflect.TypeToken;
/**
* Apart Choose Page
*
* @author roy
* @email onecoders@gmail.com
*
* @TODO 根据选择的school的id获取所有的楼号,用于显示和选择
* @TODO invoke setResult() after chosen before return
*/
public class ActChooseApart extends ActDataload implements OnItemClickListener {
private String schoolId;
private ListView listView;
private List<Apart> list;
private AdaApart adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.act_choose_apart);
init();
}
private void init() {
initActionBar();
initViews();
}
@Override
protected void initAbContent() {
setAbTitle(R.string.activity_title_building_chosen);
}
private void initViews() {
listView = (ListView) findViewById(R.id.listview_building);
listView.setOnItemClickListener(this);
list = new ArrayList<Apart>();
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
Apart apart = list.get(position);
Intent intent = new Intent();
intent.putExtra(Key.APART_JSON, toJson(apart));
setResult(RESULT_OK, intent);
finish();
}
@Override
protected void onResume() {
super.onResume();
loadContent();
}
private void loadContent() {
Bundle bundle = getIntent().getExtras();
if (bundle != null) {
schoolId = bundle.getString(Key.SCHOOL_ID);
loadBuildingInfo();
}
}
private void loadBuildingInfo() {
loadDataVolley(true, Method.QUERY_APART, "?schoolId=" + schoolId);
}
@Override
protected void disposeResult(String apiName, String content) {
super.disposeResult(apiName, content);
if (!apiName.equals(Method.QUERY_APART))
return;
list.clear();
try {
Type collectionType = new TypeToken<List<Apart>>() {
}.getType();
List<Apart> newList = fromJson(content, collectionType);
list.addAll(newList);
} catch (Exception e) {
e.printStackTrace();
showToast(R.string.error_data);
}
if (list.size() > 0) {
setAdatper();
}
}
private void setAdatper() {
if (adapter == null) {
adapter = new AdaApart(this, list);
listView.setAdapter(adapter);
} else {
adapter.notifyDataSetChanged();
}
}
}