Browse Source

推荐功能页面开发完成

huyuguo 5 years ago
parent
commit
d85c709efe

+ 56 - 24
app/src/main/java/com/electric/chargingpile/activity/RecommendChargingStationActivity.java

30
import com.electric.chargingpile.BuildConfig;
30
import com.electric.chargingpile.BuildConfig;
31
import com.electric.chargingpile.R;
31
import com.electric.chargingpile.R;
32
import com.electric.chargingpile.application.MainApplication;
32
import com.electric.chargingpile.application.MainApplication;
33
import com.electric.chargingpile.data.PileData;
33
import com.electric.chargingpile.data.RecommendZhan;
34
import com.electric.chargingpile.data.RecommendZhan;
34
import com.electric.chargingpile.util.BarColorUtil;
35
import com.electric.chargingpile.util.BarColorUtil;
35
import com.electric.chargingpile.util.JsonUtils;
36
import com.electric.chargingpile.util.JsonUtils;
48
import java.net.Socket;
49
import java.net.Socket;
49
import java.net.URISyntaxException;
50
import java.net.URISyntaxException;
50
import java.util.ArrayList;
51
import java.util.ArrayList;
52
import java.util.Calendar;
51
import java.util.Collections;
53
import java.util.Collections;
52
import java.util.Comparator;
54
import java.util.Comparator;
53
import java.util.HashMap;
55
import java.util.HashMap;
417
            final TextView iv_label_ground;
419
            final TextView iv_label_ground;
418
            final TextView iv_label_free_park;
420
            final TextView iv_label_free_park;
419
            final TextView payment_method;
421
            final TextView payment_method;
420
            final TextView fast_num;
421
            final TextView fast_free;
422
            final TextView fast_free_num;
423
            final TextView slow_num;
424
            final TextView slow_free;
425
            final TextView slow_free_num;
422
            final TextView window_tv_fast_free_label;
423
            final TextView window_tv_fast_free_num;
424
            final TextView window_tv_fast_total_num;
425
            final TextView window_tv_slow_free_num;
426
            final TextView window_tv_slow_free_label;
427
            final TextView window_tv_slow_total_num;
428
            final TextView fenshi_info_textview;
426
429
427
            public ViewHolder(View itemView) {
430
            public ViewHolder(View itemView) {
428
                super(itemView);
431
                super(itemView);
443
                iv_label_free_park = itemView.findViewById(R.id.iv_label_free_park);
446
                iv_label_free_park = itemView.findViewById(R.id.iv_label_free_park);
444
                payment_method = itemView.findViewById(R.id.payment_method);
447
                payment_method = itemView.findViewById(R.id.payment_method);
445
448
446
                fast_num = itemView.findViewById(R.id.fast_num);
447
                fast_free = itemView.findViewById(R.id.fast_free);
448
                fast_free_num = itemView.findViewById(R.id.fast_free_num);
449
                window_tv_fast_free_label = itemView.findViewById(R.id.window_tv_fast_free_label);
450
                window_tv_fast_free_num = itemView.findViewById(R.id.window_tv_fast_free_num);
451
                window_tv_fast_total_num = itemView.findViewById(R.id.window_tv_fast_total_num);
449
452
450
                slow_num = itemView.findViewById(R.id.slow_num);
451
                slow_free = itemView.findViewById(R.id.slow_free);
452
                slow_free_num = itemView.findViewById(R.id.slow_free_num);
453
                window_tv_slow_free_label = itemView.findViewById(R.id.window_tv_slow_free_label);
454
                window_tv_slow_free_num = itemView.findViewById(R.id.window_tv_slow_free_num);
455
                window_tv_slow_total_num = itemView.findViewById(R.id.window_tv_slow_total_num);
456
                fenshi_info_textview = itemView.findViewById(R.id.fenshi_info_textview);
453
457
454
            }
458
            }
455
        }
459
        }
559
            holder.iv_label_ground.setText("0".equals(recommendZhan.getPark_location()) ? "地下" : "地上");
563
            holder.iv_label_ground.setText("0".equals(recommendZhan.getPark_location()) ? "地下" : "地上");
560
            holder.iv_label_free_park.setVisibility(recommendZhan.getStop_cost().contains("免费") ? View.VISIBLE : View.GONE);
564
            holder.iv_label_free_park.setVisibility(recommendZhan.getStop_cost().contains("免费") ? View.VISIBLE : View.GONE);
561
565
566
562
            if ("1".equals(recommendZhan.getOwn_pay())) {
567
            if ("1".equals(recommendZhan.getOwn_pay())) {
563
                holder.payment_method.setText("可使用本APP扫码支付");
568
                holder.payment_method.setText("可使用本APP扫码支付");
564
            } else {
569
            } else {
570
            }
575
            }
571
576
572
            if (recommendZhan.getFast_able_num() == null && recommendZhan.getSlow_able_num() == null) {
577
            if (recommendZhan.getFast_able_num() == null && recommendZhan.getSlow_able_num() == null) {
573
                holder.fast_free.setVisibility(View.GONE);
574
                holder.fast_free_num.setVisibility(View.GONE);
575
                holder.slow_free.setVisibility(View.GONE);
576
                holder.slow_free_num.setVisibility(View.GONE);
578
                holder.window_tv_fast_free_label.setVisibility(View.GONE);
579
                holder.window_tv_fast_total_num.setVisibility(View.GONE);
580
581
                holder.window_tv_slow_free_label.setVisibility(View.GONE);
582
                holder.window_tv_slow_total_num.setVisibility(View.GONE);
583
584
                holder.window_tv_fast_free_num.setText("".equals(recommendZhan.getFast_num()) ? "0" : recommendZhan.getFast_num());
585
                holder.window_tv_slow_free_num.setText("".equals(recommendZhan.getSlow_num()) ? "0" : recommendZhan.getSlow_num());
586
            } else {
587
                holder.window_tv_fast_free_label.setVisibility(View.VISIBLE);
588
                holder.window_tv_fast_total_num.setVisibility(View.VISIBLE);
589
590
                holder.window_tv_slow_free_label.setVisibility(View.VISIBLE);
591
                holder.window_tv_slow_total_num.setVisibility(View.VISIBLE);
592
593
                holder.window_tv_fast_free_num.setText(recommendZhan.getFast_able_num());
594
                holder.window_tv_slow_free_num.setText(recommendZhan.getSlow_able_num());
595
                holder.window_tv_fast_total_num.setText("".equals(recommendZhan.getFast_num()) ? "0" : "/" + recommendZhan.getFast_num());
596
                holder.window_tv_slow_total_num.setText("".equals(recommendZhan.getSlow_num()) ? "0" : "/" +  recommendZhan.getSlow_num());
597
            }
598
599
600
            if ("1".equals(recommendZhan.getFenshi_is())) {
601
                holder.fenshi_info_textview.setText("");
602
                ArrayList<PileData.FenshiInfoBean> fenshiList = (ArrayList<PileData.FenshiInfoBean>) JsonUtils.parseToObjectList(recommendZhan.getFenshi_info(), PileData.FenshiInfoBean.class);
603
                Calendar calendar = Calendar.getInstance();
604
                int hours = calendar.get(Calendar.HOUR_OF_DAY);
605
                int minutes = calendar.get(Calendar.MINUTE);
606
                int totalMinutes = hours * 60 + minutes;
607
608
                for (PileData.FenshiInfoBean bean : fenshiList) {
609
                    if (bean.getStartTotalMinutes() > totalMinutes) {
610
                        Double service_free = Double.valueOf(bean.getService_free());
611
                        Double charge_free = Double.valueOf(bean.getCharge_free());
612
                        holder.fenshi_info_textview.setText(String.format("%s开始 %.2f元/度", bean.getStart(), service_free + charge_free));
613
                        break;
614
                    }
615
                }
577
            } else {
616
            } else {
578
                holder.fast_free.setVisibility(View.VISIBLE);
579
                holder.fast_free_num.setVisibility(View.VISIBLE);
580
                holder.slow_free.setVisibility(View.VISIBLE);
581
                holder.slow_free_num.setVisibility(View.VISIBLE);
582
                holder.fast_free_num.setText(recommendZhan.getFast_able_num());
583
                holder.slow_free_num.setText(recommendZhan.getSlow_able_num());
617
                holder.fenshi_info_textview.setText("");
584
            }
618
            }
585
619
586
            holder.fast_num.setText("".equals(recommendZhan.getFast_num()) ? "" : recommendZhan.getFast_num());
587
            holder.slow_num.setText("".equals(recommendZhan.getSlow_num()) ? "0" : recommendZhan.getSlow_num());
588
        }
620
        }
589
621
590
        @Override
622
        @Override

+ 89 - 61
app/src/main/java/com/electric/chargingpile/activity/SearchActivity.java

12
import androidx.appcompat.app.AlertDialog;
12
import androidx.appcompat.app.AlertDialog;
13

13

14
import android.text.Editable;
14
import android.text.Editable;
15
import android.text.Html;
15
import android.text.TextUtils;
16
import android.text.TextUtils;
16
import android.text.TextWatcher;
17
import android.text.TextWatcher;
17
import android.util.Log;
18
import android.util.Log;
44
import com.electric.chargingpile.R;
45
import com.electric.chargingpile.R;
45
import com.electric.chargingpile.application.MainApplication;
46
import com.electric.chargingpile.application.MainApplication;
46
import com.electric.chargingpile.data.HistoryInfo;
47
import com.electric.chargingpile.data.HistoryInfo;
47
import com.electric.chargingpile.data.Zhan;
48
import com.electric.chargingpile.manager.ProfileManager;
48
import com.electric.chargingpile.manager.ProfileManager;
49
import com.electric.chargingpile.util.BarColorUtil;
49
import com.electric.chargingpile.util.BarColorUtil;
50
import com.electric.chargingpile.util.DBOpenHandler;
50
import com.electric.chargingpile.util.DBOpenHandler;
51
import com.nostra13.universalimageloader.core.DisplayImageOptions;
52
import com.nostra13.universalimageloader.core.ImageLoader;
53
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
54
import com.nostra13.universalimageloader.core.display.RoundedBitmapDisplayer;
55
import com.umeng.analytics.MobclickAgent;
51
import com.umeng.analytics.MobclickAgent;
56

52

57
import java.util.ArrayList;
53
import java.util.ArrayList;
66
    private ImageView ivClear;
62
    private ImageView ivClear;
67
    private ListView lvContent;
63
    private ListView lvContent;
68
    private SearchAdapter adapter;
64
    private SearchAdapter adapter;
69
    private List<Map<String, String>> list = new ArrayList<Map<String, String>>();
70
    private List<Map<String, String>> history_list = new ArrayList<Map<String, String>>();
71
    private List<Zhan> mList = new ArrayList<Zhan>();
72
    private List<HistoryInfo> hList = new ArrayList<HistoryInfo>();
65
    private List<Map<String, String>> addressList = new ArrayList<Map<String, String>>();
66
    private List<Map<String, String>> addressAllList = new ArrayList<Map<String, String>>();
67
    private List<HistoryInfo> historyInfoList = new ArrayList<HistoryInfo>();
73
    private HistoryInfo history;
68
    private HistoryInfo history;
74

69

75
    private Map<String, String> map;
70
    private Map<String, String> map;
118
                int[] to = {R.id.search_name, R.id.search_address};
113
                int[] to = {R.id.search_name, R.id.search_address};
119

114

120

115

121
                hList.clear();
116
                historyInfoList.clear();
122
                while (c.moveToNext()) {
117
                while (c.moveToNext()) {
123
                    history = new HistoryInfo();
118
                    history = new HistoryInfo();
124
                    history.setIds(c.getString(c.getColumnIndex("keyword")));
119
                    history.setIds(c.getString(c.getColumnIndex("keyword")));
125
                    history.setJing(c.getString(c.getColumnIndex("jing")));
120
                    history.setJing(c.getString(c.getColumnIndex("jing")));
126
                    history.setWei(c.getString(c.getColumnIndex("wei")));
121
                    history.setWei(c.getString(c.getColumnIndex("wei")));
127
                    hList.add(history);
122
                    historyInfoList.add(history);
128
                }
123
                }
129

124

130
                SimpleCursorAdapter adapter = new SimpleCursorAdapter(SearchActivity.this, R.layout.history_item, c, from, to);
125
                SimpleCursorAdapter adapter = new SimpleCursorAdapter(SearchActivity.this, R.layout.history_item, c, from, to, 0);
131
                historyList.setAdapter(adapter);
126
                historyList.setAdapter(adapter);
132
            }
127
            }
133
        });
128
        });
153
                    historyList.setVisibility(View.GONE);
148
                    historyList.setVisibility(View.GONE);
154
                    ivClear.setVisibility(View.VISIBLE);
149
                    ivClear.setVisibility(View.VISIBLE);
155
                } else {
150
                } else {
156
                    list.clear();
157
                    mList.clear();
151
                    addressList.clear();
152
                    addressAllList.clear();
158
                    historyList.setVisibility(View.VISIBLE);
153
                    historyList.setVisibility(View.VISIBLE);
159
                    lvContent.setVisibility(View.GONE);
154
                    lvContent.setVisibility(View.GONE);
160
                    ivClear.setVisibility(View.GONE);
155
                    ivClear.setVisibility(View.GONE);
222

217

223
            }
218
            }
224
        });
219
        });
225
        adapter = new SearchAdapter(this, list);
220
        adapter = new SearchAdapter(this, addressList);
226
        lvContent.setAdapter(adapter);
221
        lvContent.setAdapter(adapter);
227

222

228
        // 点击历史记录
223
        // 点击历史记录
230
            @Override
225
            @Override
231
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
226
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
232
                Intent intent = new Intent();
227
                Intent intent = new Intent();
233
                intent.putExtra("zhan_name", hList.get(position).getIds());
234
                intent.putExtra("jing", hList.get(position).getJing());
235
                intent.putExtra("wei", hList.get(position).getWei());
236
                ProfileManager.getInstance().setSearchAddress(getApplicationContext(), hList.get(position).getIds());
228
                intent.putExtra("zhan_name", historyInfoList.get(position).getIds());
229
                intent.putExtra("jing", historyInfoList.get(position).getJing());
230
                intent.putExtra("wei", historyInfoList.get(position).getWei());
231
                ProfileManager.getInstance().setSearchAddress(getApplicationContext(), historyInfoList.get(position).getIds());
237
                setResult(101, intent);
232
                setResult(101, intent);
238
                finish();
233
                finish();
239

234

251
                db.queryOne(etSearch.getText().toString());
246
                db.queryOne(etSearch.getText().toString());
252
                ContentValues values = new ContentValues();
247
                ContentValues values = new ContentValues();
253
                values.put("time", System.currentTimeMillis());
248
                values.put("time", System.currentTimeMillis());
254
                values.put("keyword", list.get(position).get("name"));
255
                values.put("type", list.get(position).get("address"));
256
                values.put("jing", list.get(position).get("jing"));
257
                values.put("wei", list.get(position).get("wei"));
249
                values.put("keyword", addressList.get(position).get("name"));
250
                values.put("type", addressList.get(position).get("address"));
251
                values.put("jing", addressList.get(position).get("jing"));
252
                values.put("wei", addressList.get(position).get("wei"));
258
                db.insert(values);
253
                db.insert(values);
259

254

260
                Cursor c = db.query();
255
                Cursor c = db.query();
267
                SimpleCursorAdapter historyAdapter = new SimpleCursorAdapter(SearchActivity.this, R.layout.history_item, c, from, to, 0);
262
                SimpleCursorAdapter historyAdapter = new SimpleCursorAdapter(SearchActivity.this, R.layout.history_item, c, from, to, 0);
268
                historyList.setAdapter(historyAdapter);
263
                historyList.setAdapter(historyAdapter);
269
                Intent intent = new Intent();
264
                Intent intent = new Intent();
270
                intent.putExtra("zhan_name", list.get(position).get("name"));
271
                intent.putExtra("jing", list.get(position).get("jing"));
272
                intent.putExtra("wei", list.get(position).get("wei"));
273
                ProfileManager.getInstance().setSearchAddress(getApplicationContext(), list.get(position).get("name"));
265
                intent.putExtra("zhan_name", addressList.get(position).get("name"));
266
                intent.putExtra("jing", addressList.get(position).get("jing"));
267
                intent.putExtra("wei", addressList.get(position).get("wei"));
268
                ProfileManager.getInstance().setSearchAddress(getApplicationContext(), addressList.get(position).get("name"));
274
                setResult(101, intent);
269
                setResult(101, intent);
275
                View v = getWindow().peekDecorView();
270
                View v = getWindow().peekDecorView();
276
                if (v != null) {
271
                if (v != null) {
300
        }
295
        }
301

296

302

297

303
        hList.clear();
298
        historyInfoList.clear();
304
        while (c.moveToNext()) {
299
        while (c.moveToNext()) {
305
            history = new HistoryInfo();
300
            history = new HistoryInfo();
306
            history.setIds(c.getString(c.getColumnIndex("keyword")));
301
            history.setIds(c.getString(c.getColumnIndex("keyword")));
307
            history.setJing(c.getString(c.getColumnIndex("jing")));
302
            history.setJing(c.getString(c.getColumnIndex("jing")));
308
            history.setWei(c.getString(c.getColumnIndex("wei")));
303
            history.setWei(c.getString(c.getColumnIndex("wei")));
309
            hList.add(history);
304
            historyInfoList.add(history);
310
        }
305
        }
311

306

312
        String[] from = {"keyword", "type"};
307
        String[] from = {"keyword", "type"};
367
            case R.id.iv_search_clear:
362
            case R.id.iv_search_clear:
368
                ivClear.setVisibility(View.GONE);
363
                ivClear.setVisibility(View.GONE);
369
                etSearch.setText("");
364
                etSearch.setText("");
370
                list.clear();
371
                mList.clear();
365
                addressList.clear();
366
                addressAllList.clear();
372
                adapter.notifyDataSetChanged();
367
                adapter.notifyDataSetChanged();
373
                lvContent.setVisibility(View.GONE);
368
                lvContent.setVisibility(View.GONE);
374
                historyList.setVisibility(View.VISIBLE);
369
                historyList.setVisibility(View.VISIBLE);
397
                if (result.getQuery().equals(query)) {// 是否是同一条
392
                if (result.getQuery().equals(query)) {// 是否是同一条
398
                    poiResult = result;
393
                    poiResult = result;
399
                    // 取得搜索到的poiitems有多少页
394
                    // 取得搜索到的poiitems有多少页
400
                    List<PoiItem> mList = poiResult.getPois();// 取得第一页的poiitem数据,页数从数字0开始
395
                    List<PoiItem> poisList = poiResult.getPois();// 取得第一页的poiitem数据,页数从数字0开始
401
                    List<SuggestionCity> suggestionCities = poiResult.getSearchSuggestionCitys();// 当搜索不到poiitem数据时,会返回含有搜索关键字的城市信息
396
                    List<SuggestionCity> suggestionCities = poiResult.getSearchSuggestionCitys();// 当搜索不到poiitem数据时,会返回含有搜索关键字的城市信息
402

397

403
                    if (mList != null && mList.size() > 0) {
404
                        list.clear();
398
                    if (poisList != null && poisList.size() > 0) {
399
                        addressList.clear();
400
                        addressAllList.clear();
405
                        try {
401
                        try {
406
                            for (int i = 0; i < mList.size(); i++) {
402
                            for (int i = 0; i < poisList.size(); i++) {
407
                                map = new HashMap<String, String>();
403
                                map = new HashMap<String, String>();
408
                                map.put("name", mList.get(i).getTitle());
409
                                Log.e("name", mList.get(i).getTitle());
410
                                map.put("address", mList.get(i).getSnippet());
411
                                Log.e("address", mList.get(i).getSnippet());
412
                                map.put("jing", mList.get(i).getLatLonPoint().getLongitude() + "");
413
                                Log.e("jing", mList.get(i).getLatLonPoint().getLongitude() + "");
414
                                map.put("wei", mList.get(i).getLatLonPoint().getLatitude() + "");
415
                                Log.e("wei", mList.get(i).getLatLonPoint().getLatitude() + "");
404
                                map.put("name", poisList.get(i).getTitle());
405
                                map.put("address", poisList.get(i).getSnippet());
406
                                map.put("jing", poisList.get(i).getLatLonPoint().getLongitude() + "");
407
                                map.put("wei", poisList.get(i).getLatLonPoint().getLatitude() + "");
416
                                map.put("url", "");
408
                                map.put("url", "");
417
                                list.add(map);
409
                                addressAllList.add(map);
410

411
                            }
412

413
                            for (Map<String, String> address : addressAllList) {
414
                                addressList.add(address);
415
                                if (addressList.size() == 5) {
416
                                    break;
417
                                }
418
                            }
418
                            }
419
                            if (list != null && list.size() > 0) {
419

420
                            if (addressList != null && addressList.size() > 0) {
420
                                runOnUiThread(new Runnable() {
421
                                runOnUiThread(new Runnable() {
421
                                    @Override
422
                                    @Override
422
                                    public void run() {
423
                                    public void run() {
430
                        }
431
                        }
431
                    } else {
432
                    } else {
432
                        Toast.makeText(SearchActivity.this, "抱歉,未找到结果", Toast.LENGTH_SHORT).show();
433
                        Toast.makeText(SearchActivity.this, "抱歉,未找到结果", Toast.LENGTH_SHORT).show();
433
                        list.clear();
434
                        addressList.clear();
435
                        addressAllList.clear();
434
                        adapter.notifyDataSetChanged();
436
                        adapter.notifyDataSetChanged();
435
                    }
437
                    }
436
                }
438
                }
471

473

472
        @Override
474
        @Override
473
        public View getView(int position, View convertView, ViewGroup parent) {
475
        public View getView(int position, View convertView, ViewGroup parent) {
474
            ViewHolder viewHolder = null;
475
            if (convertView == null) {
476
                convertView = LayoutInflater.from(context).inflate(R.layout.item_search, null);
477
                viewHolder = new ViewHolder();
478
                viewHolder.name = (TextView) convertView.findViewById(R.id.search_name);
479
                viewHolder.address = (TextView) convertView.findViewById(R.id.search_address);
480
                viewHolder.zhan = (ImageView) convertView.findViewById(R.id.search_zhan);
481
                convertView.setTag(viewHolder);
482
            } else {
483
                viewHolder = (ViewHolder) convertView.getTag();
476
            if (addressList.size() > 0 && position < addressList.size()) {
477
                ViewHolder viewHolder = null;
478
                if (convertView == null) {
479
                    convertView = LayoutInflater.from(context).inflate(R.layout.item_search, null);
480
                    viewHolder = new ViewHolder();
481
                    viewHolder.name = convertView.findViewById(R.id.search_name);
482
                    viewHolder.address = convertView.findViewById(R.id.search_address);
483
                    viewHolder.header_title = convertView.findViewById(R.id.header_title);
484
                    viewHolder.query_all_addresses = convertView.findViewById(R.id.query_all_addresses);
485
                    convertView.setTag(viewHolder);
486
                } else {
487
                    viewHolder = (ViewHolder) convertView.getTag();
488
                }
489

490
                String name = list.get(position).get("name");
491
                String address = list.get(position).get("address");
492
                name = name.replace(keyWord, "<font color=\"#1BB637\">" + keyWord + "</font>");
493
                address = address.replace(keyWord, "<font color=\"#1BB637\">" + keyWord + "</font>");
494
                viewHolder.name.setText(Html.fromHtml(name, Html.FROM_HTML_MODE_LEGACY));
495
                viewHolder.address.setText(Html.fromHtml(address, Html.FROM_HTML_MODE_LEGACY));
496

497
                if (position == 0) {
498
                    viewHolder.header_title.setVisibility(View.VISIBLE);
499
                    viewHolder.header_title.setText(keyWord + "相关目的地");
500
                } else {
501
                    viewHolder.header_title.setVisibility(View.GONE);
502
                }
503

504
                if (position == addressList.size() - 1 && addressAllList.size() > 5) {
505
                    viewHolder.query_all_addresses.setVisibility(View.VISIBLE);
506
                } else {
507
                    viewHolder.query_all_addresses.setVisibility(View.GONE);
508
                }
509
                viewHolder.query_all_addresses.setOnClickListener(new View.OnClickListener() {
510

511
                    @Override
512
                    public void onClick(View v) {
513
                        // TODO by hyg add
514
                    }
515
                });
484
            }
516
            }
485
            viewHolder.name.setText(list.get(position).get("name"));
486
            viewHolder.address.setText(list.get(position).get("address"));
487

517

488
            viewHolder.zhan.setVisibility(View.GONE);
489
            return convertView;
518
            return convertView;
490
        }
519
        }
491

520

492
        class ViewHolder {
521
        class ViewHolder {
493
            TextView name, address;
494
            ImageView zhan;
522
            TextView name, address, header_title, query_all_addresses;
495
        }
523
        }
496
    }
524
    }
497

525


+ 18 - 0
app/src/main/java/com/electric/chargingpile/data/RecommendZhan.java

54
    private String belong_attribute;
54
    private String belong_attribute;
55
    private String park_location;
55
    private String park_location;
56
    private String stop_cost;
56
    private String stop_cost;
57
    private String fenshi_is;
57
58
59
    public String getFenshi_info() {
60
        return fenshi_info;
61
    }
62
63
    public void setFenshi_info(String fenshi_info) {
64
        this.fenshi_info = fenshi_info;
65
    }
66
67
    private String fenshi_info;
68
69
    public String getFenshi_is() {
70
        return fenshi_is;
71
    }
72
73
    public void setFenshi_is(String fenshi_is) {
74
        this.fenshi_is = fenshi_is;
75
    }
58
76
59
    public String getId() {
77
    public String getId() {
60
        return id;
78
        return id;

+ 4 - 0
app/src/main/res/drawable/list_item_divider.xml

1
<?xml version="1.0" encoding="utf-8"?>
2
<inset xmlns:android="http://schemas.android.com/apk/res/android"
3
    android:drawable="@color/lineColor"
4
    android:insetLeft="15dp"></inset>

+ 1 - 3
app/src/main/res/layout/activity_search.xml

158
        android:layout_weight="9.8"
158
        android:layout_weight="9.8"
159
        android:background="@color/white"
159
        android:background="@color/white"
160
        android:cacheColorHint="@color/transparent"
160
        android:cacheColorHint="@color/transparent"
161
        android:divider="#dddddd"
162
        android:dividerHeight="0.5dp"
163
        android:fadingEdge="none"
161
        android:fadingEdge="none"
164
        android:listSelector="@color/transparent" />
162
        android:listSelector="@color/transparent" />
165

163

170
        android:layout_weight="9.8"
168
        android:layout_weight="9.8"
171
        android:background="@color/white"
169
        android:background="@color/white"
172
        android:cacheColorHint="@color/transparent"
170
        android:cacheColorHint="@color/transparent"
173
        android:divider="#dddddd"
171
        android:divider="@drawable/list_item_divider"
174
        android:dividerHeight="0.5dp"
172
        android:dividerHeight="0.5dp"
175
        android:fadingEdge="none"
173
        android:fadingEdge="none"
176
        android:listSelector="@color/transparent" />
174
        android:listSelector="@color/transparent" />

+ 83 - 53
app/src/main/res/layout/item_search.xml

1
<?xml version="1.0" encoding="utf-8"?>
1
<?xml version="1.0" encoding="utf-8"?>
2
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
2
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3
    xmlns:tools="http://schemas.android.com/tools"
3
    android:layout_width="match_parent"
4
    android:layout_width="match_parent"
4
    android:layout_height="wrap_content"
5
    android:layout_height="wrap_content"
5
    android:background="@color/white"
6
    android:background="@color/white"
6
    android:orientation="vertical">
7
    android:orientation="vertical">
7

8

8
    <RelativeLayout
9
        android:id="@+id/search_real"
10
        android:layout_width="wrap_content"
11
        android:layout_height="wrap_content">
12

13
        <ImageView
14
            android:id="@+id/search_image"
15
            android:layout_width="wrap_content"
16
            android:layout_height="wrap_content"
17
            android:layout_centerVertical="true"
18
            android:layout_marginLeft="16dp"
19
            android:contentDescription="@null"
20
            android:paddingTop="20dp"
21
            android:paddingRight="14dp"
22
            android:paddingBottom="20dp"
23
            android:src="@drawable/icon_search1117" />
24

25
        <ImageView
26
            android:id="@+id/search_zhan"
27
            android:layout_width="60dp"
28
            android:layout_height="60dp"
29
            android:layout_centerVertical="true"
30
            android:layout_margin="10dp"
31
            android:contentDescription="@null"
32
            android:src="@drawable/image_default"
33
            android:visibility="gone" />
34
    </RelativeLayout>
9
    <TextView
10
        android:id="@+id/header_title"
11
        android:layout_width="match_parent"
12
        android:layout_height="wrap_content"
13
        android:background="#F2F2F2"
14
        android:ellipsize="end"
15
        android:maxLines="2"
16
        android:paddingLeft="15dp"
17
        android:paddingTop="4dp"
18
        android:paddingRight="15dp"
19
        android:paddingBottom="4dp"
20
        android:textColor="#a2a2a2"
21
        android:textSize="12sp"
22
        android:visibility="gone"
23
        tools:text="朝阳相关目的地"
24
        tools:visibility="visible" />
35

25

36
    <LinearLayout
26
    <LinearLayout
37
        android:layout_width="fill_parent"
27
        android:layout_width="match_parent"
38
        android:layout_height="wrap_content"
28
        android:layout_height="wrap_content"
39
        android:layout_centerVertical="true"
40
        android:layout_toRightOf="@id/search_real"
41
        android:gravity="center_vertical"
42
        android:orientation="vertical"
43
        android:paddingTop="10dp"
44
        android:paddingRight="10dp"
45
        android:paddingBottom="10dp">
29
        android:orientation="horizontal">
46

30

47
        <TextView
48
            android:id="@+id/search_name"
49
            android:layout_width="fill_parent"
50
            android:layout_height="wrap_content"
51
            android:ellipsize="end"
52
            android:singleLine="true"
53
            android:textColor="@color/title_row"
54
            android:textSize="15sp" />
31
        <LinearLayout
32
            android:layout_width="wrap_content"
33
            android:layout_height="match_parent"
34
            android:gravity="center_vertical">
55

35

56
        <TextView
57
            android:id="@+id/search_address"
58
            android:layout_width="fill_parent"
36
            <ImageView
37
                android:id="@+id/search_image"
38
                android:layout_width="wrap_content"
39
                android:layout_height="wrap_content"
40
                android:layout_centerVertical="true"
41
                android:layout_marginLeft="15dp"
42
                android:layout_marginTop="10dp"
43
                android:layout_marginRight="10dp"
44
                android:layout_marginBottom="10dp"
45
                android:contentDescription="@null"
46
                android:src="@drawable/icon_search1117" />
47
        </LinearLayout>
48

49
        <LinearLayout
50
            android:layout_width="match_parent"
59
            android:layout_height="wrap_content"
51
            android:layout_height="wrap_content"
60
            android:layout_marginTop="2dp"
61
            android:ellipsize="end"
62
            android:maxLines="2"
63
            android:textColor="@color/hintColor"
64
            android:textSize="12sp" />
52
            android:orientation="vertical"
53
            android:paddingTop="10dp"
54
            android:paddingRight="15dp"
55
            android:paddingBottom="8dp">
56

57
            <TextView
58
                android:id="@+id/search_name"
59
                android:layout_width="fill_parent"
60
                android:layout_height="wrap_content"
61
                android:ellipsize="end"
62
                android:singleLine="true"
63
                android:textColor="#151515"
64
                android:textSize="15sp"
65
                tools:text="sdfdsfdsfdsfdsasdasdasdasdasdasdasdsadasdasdasdasf" />
66

67
            <TextView
68
                android:id="@+id/search_address"
69
                android:layout_width="fill_parent"
70
                android:layout_height="wrap_content"
71
                android:layout_marginTop="2dp"
72
                android:ellipsize="end"
73
                android:maxLines="2"
74
                android:textColor="#999999"
75
                android:textSize="12sp"
76
                tools:text="sdfdsfdsfdsfds" />
77
        </LinearLayout>
65
    </LinearLayout>
78
    </LinearLayout>
66

79

67
</RelativeLayout>
80
    <View
81
        android:layout_width="match_parent"
82
        android:layout_height="0.5dp"
83
        android:layout_marginLeft="12dp"
84
        android:background="#DDDDDD" />
85

86
    <TextView
87
        android:id="@+id/query_all_addresses"
88
        android:layout_width="match_parent"
89
        android:layout_height="wrap_content"
90
        android:gravity="center_horizontal"
91
        android:textSize="12sp"
92
        android:textColor="#888888"
93
        android:paddingTop="10dp"
94
        android:paddingBottom="20dp"
95
        android:text="@string/query_all_addresses" />
96

97
</LinearLayout>

+ 147 - 109
app/src/main/res/layout/recommend_charging_station_item.xml

45
            app:layout_constraintLeft_toRightOf="@+id/zhan_name"
45
            app:layout_constraintLeft_toRightOf="@+id/zhan_name"
46
            app:layout_constraintTop_toTopOf="parent"
46
            app:layout_constraintTop_toTopOf="parent"
47
            tools:visibility="visible" />
47
            tools:visibility="visible" />
48
49
        <Button
50
            android:id="@+id/recommend_nav"
51
            android:layout_width="50dp"
52
            android:layout_height="24dp"
53
            android:background="@drawable/recommend_btn_normal"
54
            android:text="导航"
55
            android:textColor="#83d287"
56
            android:textSize="13sp"
57
            app:layout_constraintBottom_toBottomOf="parent"
58
            app:layout_constraintRight_toRightOf="parent"
59
            app:layout_constraintTop_toTopOf="parent" />
60
61
62
    </androidx.constraintlayout.widget.ConstraintLayout>
48
    </androidx.constraintlayout.widget.ConstraintLayout>
63
49
64
    <!-- 评分、距离 -->
50
    <!-- 评分、距离 -->
98
            android:textColor="#888888"
84
            android:textColor="#888888"
99
            android:textSize="12sp"
85
            android:textSize="12sp"
100
            tools:text="4.65km" />
86
            tools:text="4.65km" />
87
88
        <LinearLayout
89
            android:id="@+id/zongjia_container"
90
            android:layout_width="0dp"
91
            android:layout_height="wrap_content"
92
            android:layout_weight="1"
93
            android:gravity="right|bottom"
94
            android:paddingRight="15dp"
95
            tools:background="#00ff00">
96
97
            <TextView
98
                android:layout_width="wrap_content"
99
                android:layout_height="wrap_content"
100
                android:text="¥"
101
                android:textColor="#E02020"
102
                android:textSize="12dp" />
103
104
            <TextView
105
                android:id="@+id/zongjia"
106
                android:layout_width="wrap_content"
107
                android:layout_height="wrap_content"
108
                android:textColor="#E02020"
109
                android:textSize="20dp"
110
                android:textStyle="bold"
111
                tools:text="1.69" />
112
113
            <TextView
114
                android:layout_width="wrap_content"
115
                android:layout_height="wrap_content"
116
                android:text="元/度"
117
                android:textColor="#E02020"
118
                android:textSize="12sp" />
119
120
        </LinearLayout>
101
    </LinearLayout>
121
    </LinearLayout>
102
122
103
    <!-- 充电成功次数、评论次数 -->
123
    <!-- 充电成功次数、评论次数 -->
131
            android:textColor="#202020"
151
            android:textColor="#202020"
132
            android:textSize="14sp"
152
            android:textSize="14sp"
133
            tools:text="9次评论" />
153
            tools:text="9次评论" />
154
155
        <TextView
156
            android:id="@+id/fenshi_info_textview"
157
            android:layout_width="match_parent"
158
            android:layout_height="match_parent"
159
            android:gravity="center_vertical|right"
160
            android:paddingRight="15dp"
161
            android:textColor="#222222"
162
            android:textSize="10sp"
163
            tools:text="18:00开始 1.45元/度" />
134
    </LinearLayout>
164
    </LinearLayout>
135
165
136
    <!-- 公共、地下、免费停车属性  价格 -->
166
    <!-- 公共、地下、免费停车属性  价格 -->
179
                android:textColor="#828282"
209
                android:textColor="#828282"
180
                android:textSize="11dp" />
210
                android:textSize="11dp" />
181
        </LinearLayout>
211
        </LinearLayout>
182
183
        <LinearLayout
184
            android:id="@+id/zongjia_container"
185
            android:layout_width="0dp"
186
            android:layout_height="wrap_content"
187
            android:layout_weight="1"
188
            android:gravity="right|bottom"
189
            android:paddingRight="15dp"
190
            tools:background="#00ff00">
191
192
            <TextView
193
                android:layout_width="wrap_content"
194
                android:layout_height="wrap_content"
195
                android:text="¥"
196
                android:textColor="#555557"
197
                android:textSize="12dp" />
198
199
            <TextView
200
                android:id="@+id/zongjia"
201
                android:layout_width="wrap_content"
202
                android:layout_height="wrap_content"
203
                android:textColor="#555557"
204
                android:textSize="20dp"
205
                tools:text="1.69" />
206
207
            <TextView
208
                android:layout_width="wrap_content"
209
                android:layout_height="wrap_content"
210
                android:text="元/度"
211
                android:textColor="#555557"
212
                android:textSize="12sp" />
213
214
        </LinearLayout>
215
    </LinearLayout>
212
    </LinearLayout>
216
213
217
    <!-- 支付方式 -->
218
    <TextView
219
        android:id="@+id/payment_method"
214
    <LinearLayout
220
        android:layout_width="match_parent"
215
        android:layout_width="match_parent"
221
        android:layout_height="wrap_content"
216
        android:layout_height="wrap_content"
222
        android:layout_marginLeft="15dp"
217
        android:layout_marginLeft="15dp"
223
        android:layout_marginTop="20dp"
224
        android:layout_marginRight="15dp"
218
        android:layout_marginRight="15dp"
225
        android:textColor="#222222"
226
        android:textSize="14sp"
227
        tools:text="可使用本APP扫码支付" />
219
        android:orientation="horizontal">
220
        <!-- 支付方式 -->
221
        <TextView
222
            android:id="@+id/payment_method"
223
            android:layout_width="0dp"
224
            android:layout_height="wrap_content"
225
            android:layout_marginTop="20dp"
226
            android:layout_weight="1"
227
            android:ellipsize="end"
228
            android:lines="1"
229
            android:paddingRight="5dp"
230
            android:textColor="#222222"
231
            android:textSize="14sp"
232
            tools:text="可使用本APP扫码支付" />
233
234
        <Button
235
            android:id="@+id/recommend_nav"
236
            android:layout_width="50dp"
237
            android:layout_height="24dp"
238
            android:layout_marginTop="20dp"
239
            android:background="@drawable/recommend_btn_normal"
240
            android:text="导航"
241
            android:textColor="#83d287"
242
            android:textSize="13sp" />
243
    </LinearLayout>
228
244
229
    <View
245
    <View
230
        android:layout_width="match_parent"
246
        android:layout_width="match_parent"
237
        android:layout_width="match_parent"
253
        android:layout_width="match_parent"
238
        android:layout_height="48dp"
254
        android:layout_height="48dp"
239
        android:gravity="center_vertical">
255
        android:gravity="center_vertical">
240
241
        <LinearLayout
256
        <LinearLayout
257
242
            android:layout_width="0dp"
258
            android:layout_width="0dp"
243
            android:layout_height="match_parent"
259
            android:layout_height="wrap_content"
260
            android:layout_centerInParent="true"
244
            android:layout_weight="1"
261
            android:layout_weight="1"
245
            android:gravity="centerhorizontal">
246
247
            <TextView
248
                android:layout_width="wrap_content"
249
                android:layout_height="wrap_content"
250
                android:text="快充"
251
                android:textColor="#b2b2b2"
252
                android:textSize="12sp" />
262
            android:gravity="center_horizontalhorizontal"
263
            android:orientation="horizontal">
253
264
254
            <TextView
255
                android:id="@+id/fast_num"
265
            <ImageView
256
                android:layout_width="wrap_content"
266
                android:layout_width="wrap_content"
257
                android:layout_height="wrap_content"
267
                android:layout_height="wrap_content"
258
                android:layout_marginLeft="10dp"
259
                android:textColor="#555556"
260
                android:textSize="20sp"
261
                tools:text="5" />
268
                android:layout_gravity="center_vertical"
269
                android:paddingRight="10dp"
270
                android:src="@drawable/fast_icon" />
262
271
263
            <TextView
272
            <TextView
264
                android:id="@+id/fast_free"
273
                android:id="@+id/window_tv_fast_free_label"
265
                android:layout_width="wrap_content"
274
                android:layout_width="wrap_content"
266
                android:layout_height="wrap_content"
275
                android:layout_height="wrap_content"
267
                android:layout_marginLeft="34dp"
268
                android:text="闲"
269
                android:textColor="#b2b2b2"
270
                android:textSize="12sp" />
276
                android:layout_gravity="center_vertical"
277
                android:text="闲"
278
                android:textColor="@color/ui_62"
279
                android:textSize="14sp" />
271
280
272
            <TextView
273
                android:id="@+id/fast_free_num"
281
            <LinearLayout
274
                android:layout_width="wrap_content"
282
                android:layout_width="wrap_content"
275
                android:layout_height="wrap_content"
283
                android:layout_height="wrap_content"
276
                android:layout_marginLeft="10dp"
277
                android:textColor="#555556"
278
                android:textSize="20sp"
279
                tools:text="5" />
280
281
284
                android:layout_gravity="center_vertical"
285
                android:orientation="horizontal">
286
287
                <TextView
288
                    android:id="@+id/window_tv_fast_free_num"
289
                    android:layout_width="wrap_content"
290
                    android:layout_height="wrap_content"
291
                    android:layout_gravity="bottom"
292
                    android:paddingLeft="5dp"
293
                    android:textColor="@color/ui_62"
294
                    android:textSize="18sp"
295
                    android:textStyle="bold"
296
                    tools:text="13" />
297
298
                <TextView
299
                    android:id="@+id/window_tv_fast_total_num"
300
                    android:layout_width="wrap_content"
301
                    android:layout_height="wrap_content"
302
                    android:layout_gravity="bottom"
303
                    android:paddingLeft="1dp"
304
                    android:textColor="@color/ui_68"
305
                    android:textSize="12sp"
306
                    tools:text="/15" />
307
            </LinearLayout>
282
        </LinearLayout>
308
        </LinearLayout>
283
309
284
        <View
310
        <View
288
314
289
        <LinearLayout
315
        <LinearLayout
290
            android:layout_width="0dp"
316
            android:layout_width="0dp"
291
            android:layout_height="match_parent"
317
            android:layout_height="wrap_content"
318
            android:layout_centerInParent="true"
292
            android:layout_weight="1"
319
            android:layout_weight="1"
293
            android:gravity="centerhorizontal">
320
            android:gravity="center_horizontalhorizontal"
321
            android:orientation="horizontal">
294
322
295
            <TextView
323
            <ImageView
296
                android:layout_width="wrap_content"
324
                android:layout_width="wrap_content"
297
                android:layout_height="wrap_content"
325
                android:layout_height="wrap_content"
298
                android:text="慢充"
299
                android:textColor="#b2b2b2"
300
                android:textSize="12sp" />
326
                android:layout_gravity="center_vertical"
327
                android:paddingRight="10dp"
328
                android:src="@drawable/slow_icon" />
301
329
302
            <TextView
330
            <TextView
303
                android:id="@+id/slow_num"
331
                android:id="@+id/window_tv_slow_free_label"
304
                android:layout_width="wrap_content"
332
                android:layout_width="wrap_content"
305
                android:layout_height="wrap_content"
333
                android:layout_height="wrap_content"
306
                android:layout_marginLeft="10dp"
307
                android:textColor="#555556"
308
                android:textSize="20sp"
309
                tools:text="5" />
334
                android:layout_gravity="center_vertical"
335
                android:text="闲"
336
                android:textColor="@color/ui_62"
337
                android:textSize="14sp" />
310
338
311
            <TextView
312
                android:id="@+id/slow_free"
313
                android:layout_width="wrap_content"
314
                android:layout_height="wrap_content"
315
                android:layout_marginLeft="34dp"
316
                android:text="空闲"
317
                android:textColor="#b2b2b2"
318
                android:textSize="12sp" />
319
320
            <TextView
321
                android:id="@+id/slow_free_num"
339
            <LinearLayout
322
                android:layout_width="wrap_content"
340
                android:layout_width="wrap_content"
323
                android:layout_height="wrap_content"
341
                android:layout_height="wrap_content"
324
                android:layout_marginLeft="10dp"
325
                android:textColor="#555556"
326
                android:textSize="20sp"
327
                tools:text="5" />
342
                android:layout_gravity="center_vertical"
343
                android:orientation="horizontal">
344
345
                <TextView
346
                    android:id="@+id/window_tv_slow_free_num"
347
                    android:layout_width="wrap_content"
348
                    android:layout_height="wrap_content"
349
                    android:layout_gravity="bottom"
350
                    android:paddingLeft="5dp"
351
                    android:textColor="@color/ui_62"
352
                    android:textSize="18sp"
353
                    android:textStyle="bold"
354
                    tools:text="13" />
355
356
                <TextView
357
                    android:id="@+id/window_tv_slow_total_num"
358
                    android:layout_width="wrap_content"
359
                    android:layout_height="wrap_content"
360
                    android:layout_gravity="bottom"
361
                    android:paddingLeft="1dp"
362
                    android:textColor="@color/ui_68"
363
                    android:textSize="12sp"
364
                    tools:text="/15" />
365
            </LinearLayout>
328
        </LinearLayout>
366
        </LinearLayout>
329
    </LinearLayout>
367
    </LinearLayout>
330
368

+ 2 - 2
app/src/main/res/values/strings.xml

205
    <string name="refresh_load_succeed">Loading succeeded</string>
205
    <string name="refresh_load_succeed">Loading succeeded</string>
206
    <string name="refresh_load_succeed_nomore">That\'s All!</string>
206
    <string name="refresh_load_succeed_nomore">That\'s All!</string>
207
    <string name="refresh_load_fail">Loading failed</string>
207
    <string name="refresh_load_fail">Loading failed</string>
208
    <string name="personal_shar_info_content">快来分享吧\n
209
小主大家都很期待你的精彩内容哦</string>
208
    <string name="personal_shar_info_content">快来分享吧\n小主大家都很期待你的精彩内容哦</string>
209
    <string name="query_all_addresses"><u>查看全部目的地</u></string>
210
</resources>
210
</resources>