|
|
@@ -1,5 +1,6 @@
|
|
|
package com.ynstkz.shitu.android.activity;
|
|
|
|
|
|
+import android.content.Intent;
|
|
|
import android.os.Bundle;
|
|
|
import android.support.annotation.Nullable;
|
|
|
import android.view.View;
|
|
|
@@ -10,9 +11,11 @@ import android.widget.LinearLayout;
|
|
|
import android.widget.ListView;
|
|
|
import android.widget.TextView;
|
|
|
|
|
|
+import com.common.library.cache.Cache;
|
|
|
import com.ynstkz.shitu.android.R;
|
|
|
import com.ynstkz.shitu.android.adapter.HistoryCityGridAdapter;
|
|
|
import com.ynstkz.shitu.android.base.TitleBarActivity;
|
|
|
+import com.ynstkz.shitu.android.data.SharedPreferencesUtils;
|
|
|
import com.ynstkz.shitu.android.view.sortlist.CharacterParser;
|
|
|
import com.ynstkz.shitu.android.view.sortlist.PinyinComparator;
|
|
|
import com.ynstkz.shitu.android.view.sortlist.SideBarView;
|
|
|
@@ -31,6 +34,8 @@ import butterknife.Bind;
|
|
|
|
|
|
public class LocationSelectActivity extends TitleBarActivity {
|
|
|
|
|
|
+ private final String KRY_LISTCACHEHISTORYCITY = "listCacheHistoryCity";
|
|
|
+
|
|
|
@Bind(R.id.iv_close)
|
|
|
ImageView ivClose;
|
|
|
@Bind(R.id.tv_location)
|
|
|
@@ -50,6 +55,7 @@ public class LocationSelectActivity extends TitleBarActivity {
|
|
|
private List<SortModel> sourceDateList;
|
|
|
private PinyinComparator pinyinComparator;
|
|
|
private CharacterParser characterParser;
|
|
|
+ private List<String> listCacheHistoryCity;
|
|
|
|
|
|
@Override
|
|
|
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
|
|
@@ -67,17 +73,21 @@ public class LocationSelectActivity extends TitleBarActivity {
|
|
|
private void initView() {
|
|
|
pinyinComparator = new PinyinComparator();
|
|
|
characterParser = CharacterParser.getInstance();
|
|
|
+
|
|
|
+ tvLocation.setText(SharedPreferencesUtils.getLocation());
|
|
|
}
|
|
|
|
|
|
private void initData() {
|
|
|
- List<String> data = new ArrayList<>();
|
|
|
- data.add("北京");
|
|
|
- data.add("上海");
|
|
|
- data.add("广州");
|
|
|
- HistoryCityGridAdapter adapter = new HistoryCityGridAdapter(this, data);
|
|
|
- gvHistoryCity.setAdapter(adapter);
|
|
|
- adapter.notifyDataSetChanged();
|
|
|
|
|
|
+ Cache<List<String>> cacheHistoryCity = new Cache<>();
|
|
|
+ listCacheHistoryCity = cacheHistoryCity.get(KRY_LISTCACHEHISTORYCITY);
|
|
|
+ if(listCacheHistoryCity != null && listCacheHistoryCity.size() > 0){
|
|
|
+ HistoryCityGridAdapter adapter = new HistoryCityGridAdapter(this, listCacheHistoryCity);
|
|
|
+ gvHistoryCity.setAdapter(adapter);
|
|
|
+ adapter.notifyDataSetChanged();
|
|
|
+ } else {
|
|
|
+ gvHistoryCity.setVisibility(View.GONE);
|
|
|
+ }
|
|
|
sourceDateList = filledData(getResources().getStringArray(R.array.citys));
|
|
|
// 根据a-z进行排序源数据
|
|
|
Collections.sort(sourceDateList, pinyinComparator);
|
|
|
@@ -106,12 +116,22 @@ public class LocationSelectActivity extends TitleBarActivity {
|
|
|
});
|
|
|
|
|
|
/**
|
|
|
+ * 历史城市
|
|
|
+ */
|
|
|
+ gvHistoryCity.setOnItemClickListener(new AdapterView.OnItemClickListener() {
|
|
|
+ @Override
|
|
|
+ public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
|
|
|
+ cacheLocationHistory((String)adapterView.getAdapter().getItem(i));
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ /**
|
|
|
* 定位城市
|
|
|
*/
|
|
|
llLocationCity.setOnClickListener(new View.OnClickListener() {
|
|
|
@Override
|
|
|
public void onClick(View view) {
|
|
|
-
|
|
|
+ finish();
|
|
|
}
|
|
|
});
|
|
|
|
|
|
@@ -121,7 +141,7 @@ public class LocationSelectActivity extends TitleBarActivity {
|
|
|
lvCountry.setOnItemClickListener(new AdapterView.OnItemClickListener() {
|
|
|
@Override
|
|
|
public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
|
|
|
-// showToast(((SortModel)sortAdapter.getItem(position)).getName());
|
|
|
+ cacheLocationHistory(((SortModel)sortAdapter.getItem(position)).getName());
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
@@ -159,6 +179,18 @@ public class LocationSelectActivity extends TitleBarActivity {
|
|
|
* @param city
|
|
|
*/
|
|
|
private void cacheLocationHistory(String city){
|
|
|
+ if(listCacheHistoryCity == null){
|
|
|
+ listCacheHistoryCity = new ArrayList<>();
|
|
|
+ }
|
|
|
+ listCacheHistoryCity.add(0, city);
|
|
|
+ if(listCacheHistoryCity.size() > 4){
|
|
|
+ listCacheHistoryCity.remove(4);
|
|
|
+ }
|
|
|
+ Cache.put(KRY_LISTCACHEHISTORYCITY, listCacheHistoryCity);
|
|
|
|
|
|
+ Intent intent = new Intent();
|
|
|
+ intent.putExtra("result", city);
|
|
|
+ setResult(RESULT_OK, intent);
|
|
|
+ finish();
|
|
|
}
|
|
|
}
|