瀏覽代碼

添加机构详情课程

316044749 7 年之前
父節點
當前提交
e95d5df8ea

+ 9 - 1
app/src/main/java/com/ynstkz/shitu/android/activity/OrgDetailActivity.java

@@ -11,9 +11,11 @@ import android.widget.TextView;
 import com.common.library.okhttp.callback.Callback;
 import com.google.gson.Gson;
 import com.ynstkz.shitu.android.R;
+import com.ynstkz.shitu.android.adapter.OrgCourseListAdapter;
 import com.ynstkz.shitu.android.base.TitleBarActivity;
 import com.ynstkz.shitu.android.bean.OrgDetailBean;
 import com.ynstkz.shitu.android.data.RequestGroup;
+import com.ynstkz.shitu.android.view.ListViewForScrollView;
 
 import butterknife.Bind;
 import okhttp3.Call;
@@ -39,7 +41,7 @@ public class OrgDetailActivity extends TitleBarActivity {
     @Bind(R.id.tv_org_desc)
     TextView tvOrgDesc;
     @Bind(R.id.lv_course)
-    ListView lvCourse;
+    ListViewForScrollView lvCourse;
     @Bind(R.id.ll_comment)
     LinearLayout llComment;
     @Bind(R.id.lv_recommend)
@@ -126,5 +128,11 @@ public class OrgDetailActivity extends TitleBarActivity {
         tvAddress.setText(dataBean.getAddress());
         tvOrgDesc.setText(dataBean.getIntroduction());
 
+        //课程信息
+        if(dataBean.getCourseList() != null && dataBean.getCourseList().size() > 0){
+            OrgCourseListAdapter orgCourseListAdapter = new OrgCourseListAdapter(this, dataBean.getCourseList());
+            lvCourse.setAdapter(orgCourseListAdapter);
+            orgCourseListAdapter.notifyDataSetChanged();
+        }
     }
 }

+ 68 - 0
app/src/main/java/com/ynstkz/shitu/android/adapter/OrgCourseListAdapter.java

@@ -0,0 +1,68 @@
+package com.ynstkz.shitu.android.adapter;
+
+import android.content.Context;
+import android.graphics.Paint;
+import android.view.View;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import com.bumptech.glide.Glide;
+import com.common.library.adapter.CCAdapterHolder;
+import com.common.library.adapter.CCListAdapter;
+import com.ynstkz.shitu.android.R;
+import com.ynstkz.shitu.android.bean.CourseItemBean;
+
+import java.util.List;
+
+/**
+ * 作者:fuchangle on 2018/3/14 14:23
+ */
+
+public class OrgCourseListAdapter extends CCListAdapter<CourseItemBean>{
+
+    private Context context;
+    private List<CourseItemBean> adapterContent;
+
+    public OrgCourseListAdapter(Context context, List<CourseItemBean> adapterContent) {
+        super(context, adapterContent);
+        this.context = context;
+        this.adapterContent = adapterContent;
+    }
+
+    @Override
+    public CCAdapterHolder<CourseItemBean> createHolder(int type) {
+
+        return new CCAdapterHolder<CourseItemBean>() {
+
+            ImageView ivIcon;
+            TextView tvTitle;
+            TextView tvDetail;
+            TextView tvPrice;
+            TextView tvMarketPrice;
+
+            @Override
+            public int getResource() {
+                return R.layout.item_orgdetail_course;
+            }
+
+            @Override
+            public void initializeView(View convertView) {
+                ivIcon = convertView.findViewById(R.id.iv_headPic);
+                tvTitle = convertView.findViewById(R.id.tv_title);
+                tvDetail = convertView.findViewById(R.id.tv_detail);
+                tvPrice = convertView.findViewById(R.id.tv_course_price);
+                tvMarketPrice = convertView.findViewById(R.id.tv_course_marketprice);
+            }
+
+            @Override
+            public void updateView(CourseItemBean content, int position) {
+                Glide.with(context).load(content.getCoursePic()).into(ivIcon);
+                tvTitle.setText(content.getTitle());
+                tvDetail.setText(content.getDetail());
+                tvPrice.setText("¥" + content.getPrice());
+                tvMarketPrice.setText(content.getMarketPrice());
+                tvMarketPrice.getPaint().setFlags(Paint. STRIKE_THRU_TEXT_FLAG);
+            }
+        };
+    }
+}

+ 6 - 6
app/src/main/java/com/ynstkz/shitu/android/bean/CourseItemBean.java

@@ -26,8 +26,8 @@ public class CourseItemBean extends BaseBean{
     private String title;
     private String detail;
     private String coursePic;
-    private int price;
-    private int marketPrice;
+    private String price;
+    private String marketPrice;
     private String memberId;
 
     public String getCourseId() {
@@ -62,19 +62,19 @@ public class CourseItemBean extends BaseBean{
         this.coursePic = coursePic;
     }
 
-    public int getPrice() {
+    public String getPrice() {
         return price;
     }
 
-    public void setPrice(int price) {
+    public void setPrice(String price) {
         this.price = price;
     }
 
-    public int getMarketPrice() {
+    public String getMarketPrice() {
         return marketPrice;
     }
 
-    public void setMarketPrice(int marketPrice) {
+    public void setMarketPrice(String marketPrice) {
         this.marketPrice = marketPrice;
     }
 

+ 51 - 2
app/src/main/java/com/ynstkz/shitu/android/fragment/OrgListFragment.java

@@ -2,11 +2,14 @@ package com.ynstkz.shitu.android.fragment;
 
 import android.content.Intent;
 import android.os.Bundle;
+import android.text.TextUtils;
 import android.view.KeyEvent;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
+import android.view.inputmethod.EditorInfo;
 import android.widget.AdapterView;
+import android.widget.EditText;
 import android.widget.LinearLayout;
 import android.widget.ListView;
 import android.widget.TextView;
@@ -16,9 +19,12 @@ import com.common.library.pulltorefresh.PullToRefreshBase;
 import com.common.library.pulltorefresh.PullToRefreshListView;
 import com.google.gson.Gson;
 import com.ynstkz.shitu.android.R;
+import com.ynstkz.shitu.android.activity.LocationSelectActivity;
 import com.ynstkz.shitu.android.activity.OrgDetailActivity;
+import com.ynstkz.shitu.android.activity.OrgListActivity;
 import com.ynstkz.shitu.android.adapter.OrgFilterListAdapter;
 import com.ynstkz.shitu.android.adapter.OrgListAdapter;
+import com.ynstkz.shitu.android.application.STSign;
 import com.ynstkz.shitu.android.base.BaseFragment;
 import com.ynstkz.shitu.android.bean.OrgItemBean;
 import com.ynstkz.shitu.android.bean.OrgListBean;
@@ -63,6 +69,12 @@ public class OrgListFragment extends BaseFragment implements PullToRefreshBase.O
     ListView lvFilterContent;
     @Bind(R.id.ll_filter_content)
     LinearLayout llFilterContent;
+    @Bind(R.id.ll_location_select)
+    LinearLayout llLocationSelect;
+    @Bind(R.id.edit_search)
+    EditText editSearch;
+    @Bind(R.id.ll_phone_server)
+    LinearLayout llPhoneServer;
 
     private int pageNumber;
     private List<OrgItemBean> listOrg;
@@ -142,6 +154,43 @@ public class OrgListFragment extends BaseFragment implements PullToRefreshBase.O
                 llFilterContent.setVisibility(View.GONE);
             }
         });
+
+        //定位选择
+        llLocationSelect.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                startActivityForResult(new Intent(getActivity(), LocationSelectActivity.class), 10);
+            }
+        });
+
+        //搜索
+        editSearch.setOnEditorActionListener(new TextView.OnEditorActionListener() {
+            @Override
+            public boolean onEditorAction(TextView textView, int actionId, KeyEvent keyEvent) {
+                if (actionId == EditorInfo.IME_ACTION_SEARCH) {
+                    String searchKey = editSearch.getText().toString().trim();
+                    if (!TextUtils.isEmpty(searchKey)) {
+                        Intent intent = new Intent(getActivity(), OrgListActivity.class);
+                        intent.putExtra("searchKey", searchKey);
+                        intent.putExtra("isHideTitleView", true);
+                        startActivity(intent);
+                    } else {
+                        showToast("搜索关键字不能为空");
+                    }
+                }
+                return false;
+            }
+        });
+
+        /**
+         * 客服电话
+         */
+        llPhoneServer.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                STSign.getInstance().openPhoneServer(getActivity());
+            }
+        });
     }
 
     @Override
@@ -231,7 +280,7 @@ public class OrgListFragment extends BaseFragment implements PullToRefreshBase.O
 
     @Subscribe(threadMode = ThreadMode.MAIN)
     public void onMessageEvent(LocationChangedEvent event) {
-        if(event.getAmapLocation() != null){
+        if (event.getAmapLocation() != null) {
             tvLocation.setText(event.getAmapLocation().getDistrict());
             //获取推荐机构列表
             pageNumber = 1;
@@ -248,7 +297,7 @@ public class OrgListFragment extends BaseFragment implements PullToRefreshBase.O
     public boolean onKeyDown(int keyCode, KeyEvent event) {
         if (keyCode == event.KEYCODE_BACK
                 && event.getAction() == KeyEvent.ACTION_DOWN) {
-            if(llFilterContent != null && llFilterContent.getVisibility() == View.VISIBLE){
+            if (llFilterContent != null && llFilterContent.getVisibility() == View.VISIBLE) {
                 llFilterContent.setVisibility(View.GONE);
                 return true;
             }

+ 30 - 0
app/src/main/java/com/ynstkz/shitu/android/view/ListViewForScrollView.java

@@ -0,0 +1,30 @@
+package com.ynstkz.shitu.android.view;
+
+import android.content.Context;
+import android.util.AttributeSet;
+import android.widget.ListView;
+
+public class ListViewForScrollView extends ListView {
+    public ListViewForScrollView(Context context) {
+        super(context);
+    }
+
+    public ListViewForScrollView(Context context, AttributeSet attrs) {
+        super(context, attrs);
+    }
+
+    public ListViewForScrollView(Context context, AttributeSet attrs,
+                                 int defStyle) {
+        super(context, attrs, defStyle);
+    }
+
+    @Override
+    /**
+     * 重写该方法,达到使ListView适应ScrollView的效果
+     */
+    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
+        int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,
+                MeasureSpec.AT_MOST);
+        super.onMeasure(widthMeasureSpec, expandSpec);
+    }
+}

+ 2 - 3
app/src/main/res/layout/activity_org_detail.xml

@@ -140,11 +140,10 @@
                     android:textColor="@color/color_333"
                     android:textSize="@dimen/company_16sp" />
 
-                <ListView
+                <com.ynstkz.shitu.android.view.ListViewForScrollView
                     android:id="@+id/lv_course"
                     android:layout_width="match_parent"
-                    android:layout_height="wrap_content"
-                    android:divider="@null" />
+                    android:layout_height="wrap_content" />
 
             </LinearLayout>
 

+ 81 - 0
app/src/main/res/layout/item_orgdetail_course.xml

@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:orientation="horizontal"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+
+    <RelativeLayout
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/company_80dp"
+        android:orientation="horizontal">
+
+        <ImageView
+            android:id="@+id/iv_headPic"
+            android:layout_width="@dimen/company_80dp"
+            android:layout_height="match_parent"
+            android:background="@mipmap/ic_launcher"/>
+
+        <RelativeLayout
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:layout_marginLeft="@dimen/company_10dp"
+            android:layout_toRightOf="@+id/iv_headPic"
+            android:layout_toLeftOf="@+id/ll_course_price"
+            android:padding="@dimen/company_5dp"
+            android:orientation="vertical">
+
+            <TextView
+                android:id="@+id/tv_title"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:textSize="@dimen/company_16sp"
+                android:textColor="@color/color_333"
+                android:textStyle="bold"
+                android:text="新东方培训学校-西湖文化广场分校"/>
+
+            <TextView
+                android:id="@+id/tv_detail"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_below="@+id/tv_title"
+                android:layout_marginTop="@dimen/company_5dp"
+                android:maxLines="3"
+                android:textSize="@dimen/company_13sp"
+                android:textColor="@color/color_666"/>
+
+        </RelativeLayout>
+
+        <LinearLayout
+            android:id="@+id/ll_course_price"
+            android:layout_width="wrap_content"
+            android:layout_height="match_parent"
+            android:orientation="vertical"
+            android:layout_alignParentRight="true"
+            android:gravity="center_vertical">
+
+            <TextView
+                android:id="@+id/tv_course_price"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_gravity="right"
+                android:textSize="@dimen/company_14sp"
+                android:textColor="#ff695c"
+                android:text="$20"/>
+
+            <TextView
+                android:id="@+id/tv_course_marketprice"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_gravity="right"
+                android:layout_marginTop="@dimen/company_5dp"
+                android:textColor="@color/color_999"
+                android:textSize="10sp"
+                android:text="市场价:¥34"/>
+
+        </LinearLayout>
+
+    </RelativeLayout>
+
+    <include layout="@layout/view_default_line"/>
+
+</LinearLayout>