diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/adapter/CalculatePathAdapter.java b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/adapter/CalculatePathAdapter.java index fdb90204a2..5f92b580b0 100644 --- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/adapter/CalculatePathAdapter.java +++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/adapter/CalculatePathAdapter.java @@ -1,6 +1,7 @@ package com.mogo.module.navi.ui.adapter; import android.content.Context; +import android.text.TextUtils; import android.view.View; import com.mogo.map.navi.MogoCalculatePath; import com.mogo.map.search.inputtips.MogoTip; @@ -15,9 +16,8 @@ import java.util.List; */ public class CalculatePathAdapter extends RecycleBaseAdapter { - private int current = 0; - private int lastPosition = 0; + private String selectTag; /** * */ @@ -33,9 +33,9 @@ public class CalculatePathAdapter extends RecycleBaseAdapter //holder.setText(R.id.tv_position, tip.getName()); //holder.setText(R.id.tv_position_des, tip.getAddress()); - holder.itemView.setTag(R.id.tag_position, holder.getLayoutPosition()); + holder.itemView.setTag(R.id.tag_item, item); holder.itemView.setOnClickListener(onClickListener); - holder.itemView.setSelected(current == holder.getLayoutPosition()); + holder.itemView.setSelected(TextUtils.equals(item.getTagId(),selectTag)); View mName = holder.getView(R.id.amap_calculate_item_strategy_name); holder.setText(R.id.amap_calculate_item_strategy_name, item.getStrategyName()); @@ -49,15 +49,13 @@ public class CalculatePathAdapter extends RecycleBaseAdapter this.onClickListener = onClickListener; } - public void setCurrent(int current) { - this.current = current; - notifyItemChanged(lastPosition); - notifyItemChanged(current); - lastPosition = current; + public void setSelectTag(String selectTag) { + this.selectTag = selectTag; + notifyDataSetChanged(); } - public MogoCalculatePath getCurrentItem() { - return list.get(current); + public String getSelectTag() { + return selectTag; } private int getStrategyNameBkgResId(int position) { diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/ChoosePathFragment.kt b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/ChoosePathFragment.kt index 28d769a05e..8a15217739 100644 --- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/ChoosePathFragment.kt +++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/ChoosePathFragment.kt @@ -10,8 +10,6 @@ import com.mogo.map.navi.MogoNaviInfo import com.mogo.map.search.inputtips.MogoTip import com.mogo.module.common.MogoModulePaths import com.mogo.module.navi.R -import com.mogo.module.navi.bean.EntityConvertUtils -import com.mogo.module.navi.bean.SearchPoi import com.mogo.module.navi.constants.AMapConstants import com.mogo.module.navi.constants.SearchServiceHolder import com.mogo.module.navi.ui.adapter.CalculatePathAdapter @@ -42,17 +40,24 @@ class ChoosePathFragment : BaseFragment(), IMogoNaviListener { } override fun onCalculateSuccess() { - mAdapter.setDatas(SearchServiceHolder.getNavi(activity!!).calculatedStrategies) + var calculatedStrategies = SearchServiceHolder.getNavi(activity!!) + .calculatedStrategies + + if (calculatedStrategies != null&&calculatedStrategies.size>0) { + mAdapter.setDatas(calculatedStrategies) + mAdapter.selectTag=calculatedStrategies[0].tagId + } } override fun onoCalculateFailed() { } - private lateinit var mAdapter:CalculatePathAdapter + private lateinit var mAdapter: CalculatePathAdapter override fun getLayoutId(): Int { return R.layout.fragment_search_category } - var mogoTip: MogoTip?=null + + var mogoTip: MogoTip? = null override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) mogoTip = arguments?.getParcelable(AMapConstants.KEY_PARCELABLE) @@ -67,38 +72,47 @@ class ChoosePathFragment : BaseFragment(), IMogoNaviListener { SearchServiceHolder.fragmentManager.pop() } - tv_navi_navi.text=getString(R.string.start_navi) + tv_navi_navi.text = getString(R.string.start_navi) et_navi_search.setText(getString(R.string.choose_path)) - et_navi_search.isEnabled=false - SearchServiceHolder.getNavi(context!!).naviTo(mogoTip?.point) + et_navi_search.isEnabled = false + SearchServiceHolder.getNavi(context!!) + .naviTo(mogoTip?.point) - SearchServiceHolder.listenerCenter.registerMogoNaviListener(MogoModulePaths.PATH_FRAGMENT_CHOOSE_PAHT,this) + SearchServiceHolder.listenerCenter.registerMogoNaviListener( + MogoModulePaths.PATH_FRAGMENT_CHOOSE_PAHT, this + ) var arrayList = ArrayList() - mAdapter= CalculatePathAdapter(activity,arrayList) - rv_search_result.layoutManager=LinearLayoutManager(activity,LinearLayoutManager.VERTICAL,false) + mAdapter = CalculatePathAdapter(activity, arrayList) + rv_search_result.layoutManager = + LinearLayoutManager(activity, LinearLayoutManager.VERTICAL, false) - rv_search_result.adapter=mAdapter + rv_search_result.adapter = mAdapter tv_navi_navi.setOnClickListener { - SearchServiceHolder.getNavi(activity!!).startNavi(false) + SearchServiceHolder.getNavi(activity!!) + .startNavi(false) } - mAdapter.setOnClickListener { - var position = it.getTag(R.id.tag_position) as Int - mAdapter.setCurrent(position) - SearchServiceHolder.getNavi(context!!).itemClickInteraction.onItemClicked(mAdapter.currentItem.tagId) + SearchServiceHolder.getNavi(context!!) + .setLineClickInteraction { + mAdapter.setSelectTag(it) + } + mAdapter.setOnClickListener { + var item = it.getTag(R.id.tag_item) as MogoCalculatePath + mAdapter.setSelectTag(item.tagId) + SearchServiceHolder.getNavi(context!!) + .itemClickInteraction.onItemClicked(item.tagId) } } - - companion object{ - fun newInstance(searchPoi: MogoTip):Fragment{ + companion object { + fun newInstance(searchPoi: MogoTip): Fragment { var bundle = Bundle() bundle.putParcelable(AMapConstants.KEY_PARCELABLE, searchPoi) var choosePathFragment = ChoosePathFragment() - choosePathFragment.arguments=bundle + choosePathFragment.arguments = bundle return choosePathFragment } } diff --git a/modules/mogo-module-search/src/main/res/mipmap-xhdpi/icon_choose_position.png b/modules/mogo-module-search/src/main/res/mipmap-xhdpi/icon_choose_position.png new file mode 100755 index 0000000000..fc9a5ad916 Binary files /dev/null and b/modules/mogo-module-search/src/main/res/mipmap-xhdpi/icon_choose_position.png differ