|
package com.electric.chargingpile.activity;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.view.Window;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.PopupWindow;
import com.electric.chargingpile.R;
import com.electric.chargingpile.adapter.MainAdapter;
import com.electric.chargingpile.adapter.MoreAdapter;
import com.electric.chargingpile.application.MainApplication;
import com.electric.chargingpile.data.Cars;
import com.electric.chargingpile.data.Province;
import com.electric.chargingpile.util.BarColorUtil;
import com.electric.chargingpile.util.OkHttpUtil;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.TextView;
import com.squareup.okhttp.Request;
import com.squareup.okhttp.Response;
import com.zhy.autolayout.L;
import org.greenrobot.greendao.internal.LongHashMap;
import org.json.JSONArray;
import org.json.JSONObject;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class SelectCarActivity extends Activity {
private DisplayMetrics dm;
private PopupWindow popWindow;
private MoreAdapter moreAdapter;
private ListView morelist;
private TextView tv;
private List<Province> mainList;
private ListView mainlist;
private MainAdapter mainAdapter;
private String pinpai ="",chexing="";
private ImageView iv_back;
private View view;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_select_car);
BarColorUtil.initStatusBarColor(SelectCarActivity.this);
dm = new DisplayMetrics();
// 取得窗口属性
getWindowManager().getDefaultDisplay().getMetrics(dm);
mainlist = (ListView)findViewById(R.id.classify_mainlist);
morelist = (ListView) findViewById(R.id.classify_morelist);
view = findViewById(R.id.view);
iv_back = (ImageView) findViewById(R.id.iv_back);
iv_back.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
initModle();// 添加数据
}
private void downPopwindow() {
if (mainList != null) {
mainAdapter = new MainAdapter(this, mainList);
mainAdapter.setSelectItem(0);
mainlist.setAdapter(mainAdapter);
pinpai = mainList.get(0).getName();
mainlist.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
pinpai = mainList.get(position).getName();
List<Cars> lists = mainList.get(position).getCities();
initAdapter(lists);
mainAdapter.setSelectItem(position);
mainAdapter.notifyDataSetChanged();
}
});
mainlist.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
// 一定要设置这个属性,否则ListView不会刷新
initAdapter(mainList.get(0).getCities());
morelist.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
Cars s = (Cars) moreAdapter.getItem(position);
// Toast.makeText(getApplicationContext(), s.getName(), Toast.LENGTH_SHORT).show();
chexing = s.getName();
moreAdapter.setSelectItem(position);
moreAdapter.notifyDataSetChanged();
Intent intent=new Intent();
intent.putExtra("pinpai", pinpai );
intent.putExtra("chexing", chexing);
setResult(RESULT_OK, intent);
finish();
}
});
}
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_DOWN
&& keyCode == KeyEvent.KEYCODE_BACK)
SelectCarActivity.this.finish();
return super.onKeyDown(keyCode, event);
}
private void initAdapter(List<Cars> lists) {
moreAdapter = new MoreAdapter(this, lists);
morelist.setAdapter(moreAdapter);
moreAdapter.notifyDataSetChanged();
}
private void initModle() {
new Thread(new Runnable() {
@Override
public void run() {
show_Data();
}
}).start();
// mainList = new ArrayList<AddressEntity>();
// Gson gson = new Gson();
// String json = "{\"result\":\"Y\", \"address\":[{\"name\":\"北京\",\"custId\":\""
// + R.drawable.ic_category_1
// + "\", \"area\":[\"东城区\",\"西城区\",\"崇文区\",\"宣武区\",\"延庆县\"]},{\"name\":\"上海\", \"custId\":\""
// + R.drawable.ic_category_2
// + "\",\"area\":[\"黄浦区\",\"卢湾区\",\"徐汇区\",\"长宁区\",\"静安区\",\"其他\"]}]}";
// java.lang.reflect.Type type = new TypeToken<Bean>() {
// }.getType();
// Bean b = gson.fromJson(json, type);
// mainList.addAll(b.getAddress());
}
private void show_Data() {
String url = MainApplication.url+"/zhannew/basic/web/index.php/brand/getlist";
Log.e("url===",url);
Request request = new Request.Builder().url(url).build();
Response response = null;
try {
response = OkHttpUtil.execute(request);
if (response.code() == 200) {
String json = "";
try {
json = response.body().string();
} catch (IOException e) {
e.printStackTrace();
}
Message msg = handler.obtainMessage();
msg.what = 1;
msg.obj = json;
handler.sendMessage(msg);
} else if (response.code() == 204) {
Message msg = handler.obtainMessage();
msg.what = 5;
handler.sendMessage(msg);
}
} catch (Exception e) {
e.printStackTrace();
}
}
private Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what) {
case 1:
try {
mainList = new ArrayList<Province>();
Log.e("1111",msg.obj.toString());
JSONArray jsonary = new JSONArray(msg.obj.toString());
if (jsonary.length()>0 && !msg.obj.toString().equals("")) {
for (int i = 0; i < jsonary.length(); i++) {
JSONObject js = new JSONObject(jsonary.get(i)
.toString());
Province prov = new Province();
// List<Cars> cities1 = new ArrayList<Cars>();
// Cars car1 = new Cars("name","id","brand_id");
// cities1.add(car1);
// Province prov=new Province("比亚迪1", 2, car1);
// Province prov=new Province("比亚迪1", 2, null);
prov.setId(js.getInt("id"));
prov.setName(js.getString("name"));
JSONArray jsonary1 = js.getJSONArray("cars");
List<Cars> cities = new ArrayList<Cars>();
for (int j = 0; j < jsonary1.length(); j++) {
JSONObject js2 = new JSONObject(jsonary1.get(j)
.toString());
Cars car = new Cars(js2.getString("name"),
js2.getString("id"),
js2.getString("brand_id"));
cities.add(car);
}
prov.setCities(cities);
mainList.add(prov);
handler.postDelayed(new Runnable() {
@Override
public void run() {
downPopwindow();
}
}, 500);
}
Log.e("mainList_size===",mainList.size()+"");
}
} catch (Exception e) {
e.printStackTrace();
}
// mainAdapter.notifyDataSetChanged();
// numbers.clear();
// for (int i = 0; i < pr.size(); i++) {
// numbers.add(pr.get(i).getName());
// }
// adapter.notifyDataSetChanged();
break;
case 5:
break;
default:
break;
}
}
};
}
|