Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
R
RvApp
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lify
RvApp
Commits
c9b7fb7e
Commit
c9b7fb7e
authored
Aug 28, 2019
by
linfeng
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
旅游下单、底图适配等优化
parent
0e1f197a
Changes
20
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
1214 additions
and
71 deletions
+1214
-71
AndroidManifest.xml
RvClient/src/main/AndroidManifest.xml
+7
-1
start_back_icon.xml
RvClient/src/main/res/drawable/start_back_icon.xml
+3
-3
styles.xml
RvClient/src/main/res/values-v19/styles.xml
+19
-0
styles.xml
RvClient/src/main/res/values-v21/styles.xml
+22
-0
styles.xml
RvClient/src/main/res/values/styles.xml
+15
-7
common_icon_select.png
...source/src/main/res/drawable-xhdpi/common_icon_select.png
+0
-0
rv_common_icon_pay_round.png
.../src/main/res/drawable-xhdpi/rv_common_icon_pay_round.png
+0
-0
AboutUsActivity.java
...src/main/java/com/rv/rvmine/traveler/AboutUsActivity.java
+12
-6
PersonalInformationActivity.java
...a/com/rv/rvmine/traveler/PersonalInformationActivity.java
+5
-3
activity_about_us.xml
module_mine/src/main/res/layout/activity_about_us.xml
+1
-0
rv_dialog_choose_gender.xml
module_mine/src/main/res/layout/rv_dialog_choose_gender.xml
+1
-1
TravelBookingDepartureAdapter.java
...com/rv/tourism/adapter/TravelBookingDepartureAdapter.java
+37
-0
TravelBookingDeparturetimeAdapter.java
...rv/tourism/adapter/TravelBookingDeparturetimeAdapter.java
+73
-0
TourismApi.java
..._tourism/src/main/java/com/rv/tourism/api/TourismApi.java
+2
-0
BeanTourDetailData.java
...src/main/java/com/rv/tourism/bean/BeanTourDetailData.java
+357
-0
TravelBookingDialog.java
.../main/java/com/rv/tourism/dialog/TravelBookingDialog.java
+225
-0
TravelDetailsActivity.java
...main/java/com/rv/tourism/other/TravelDetailsActivity.java
+109
-50
dialog_travel_booking.xml
module_tourism/src/main/res/layout/dialog_travel_booking.xml
+246
-0
rv_item_travel_booking_departure.xml
.../src/main/res/layout/rv_item_travel_booking_departure.xml
+48
-0
rv_item_travel_booking_departure_time.xml
...main/res/layout/rv_item_travel_booking_departure_time.xml
+32
-0
No files found.
RvClient/src/main/AndroidManifest.xml
View file @
c9b7fb7e
...
...
@@ -116,7 +116,13 @@
<category
android:name=
"android.intent.category.LAUNCHER"
/>
</intent-filter>
</activity>
<!-- 百度地图相关 -->
</activity>
<!--region 适配全面屏-->
<meta-data
android:name=
"android.max_aspect"
android:value=
"2.4"
/>
<!-- 百度地图相关 -->
<!-- 声明service组件 -->
<service
android:name=
"com.baidu.location.f"
...
...
RvClient/src/main/res/drawable/start_back_icon.xml
View file @
c9b7fb7e
<?xml version="1.0" encoding="utf-8"?>
<layer-list
xmlns:android=
"http://schemas.android.com/apk/res/android"
>
<layer-list
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:opacity=
"opaque"
>
<item>
<shape>
<solid
android:color=
"@color/colorWrite"
/>
...
...
@@ -7,8 +8,7 @@
</item>
<item>
<bitmap
android:gravity=
"bottom"
android:scaleType=
"matrix"
android:gravity=
"bottom|center_horizontal"
android:src=
"@drawable/bottom_backgroud2"
android:tileMode=
"disabled"
/>
</item>
...
...
RvClient/src/main/res/values-v19/styles.xml
0 → 100644
View file @
c9b7fb7e
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style
name=
"SplashTheme"
parent=
"Theme.AppCompat.Light.NoActionBar"
>
<!--<item name="android:windowBackground">@drawable/start_back_icon</item>-->
<!--<item name="windowNoTitle">true</item>-->
<!--<item name="windowActionBar">true</item>-->
<!--<item name="android:windowContentOverlay">@null</item>-->
<!--<item name="android:windowNoTitle">true</item>-->
<!--<!– 设置全屏 –>-->
<!--<item name="android:windowFullscreen">true</item>-->
<item
name=
"android:windowTranslucentNavigation"
>
true
</item>
<item
name=
"android:windowTranslucentStatus"
>
true
</item>
<item
name=
"android:windowFullscreen"
>
true
</item>
<item
name=
"android:windowBackground"
>
@drawable/start_back_icon
</item>
</style>
</resources>
\ No newline at end of file
RvClient/src/main/res/values-v21/styles.xml
0 → 100644
View file @
c9b7fb7e
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style
name=
"SplashTheme"
parent=
"Theme.AppCompat.Light.NoActionBar"
>
<!--<item name="android:windowBackground">@drawable/start_back_icon</item>-->
<!--<item name="windowNoTitle">true</item>-->
<!--<item name="windowActionBar">true</item>-->
<!--<item name="android:windowContentOverlay">@null</item>-->
<!--<item name="android:windowNoTitle">true</item>-->
<!--<!– 设置全屏 –>-->
<!--<item name="android:windowFullscreen">true</item>-->
<item
name=
"android:navigationBarColor"
>
@android:color/transparent
</item>
<item
name=
"android:statusBarColor"
>
@android:color/transparent
</item>
<!--windowTranslucentNavigation这个属性设置成true,则navigationBarColor设置会失效-->
<!--<item name="android:windowTranslucentNavigation">true</item>-->
<!--<item name="android:windowTranslucentStatus">true</item>-->
<item
name=
"android:windowFullscreen"
>
true
</item>
<item
name=
"android:windowBackground"
>
@drawable/start_back_icon
</item>
</style>
</resources>
\ No newline at end of file
RvClient/src/main/res/values/styles.xml
View file @
c9b7fb7e
...
...
@@ -10,15 +10,23 @@
<!-- 给Theme设置backgroud,解决启动黑屏问题,不过这样的启动速度好像变得更慢了一些-->
<style
name=
"SplashTheme"
parent=
"Theme.AppCompat.Light.NoActionBar"
>
<item
name=
"android:windowBackground"
>
@drawable/start_back_icon
</item>
<item
name=
"windowNoTitle"
>
true
</item>
<item
name=
"windowActionBar"
>
true
</item>
<item
name=
"android:windowContentOverlay"
>
@null
</item>
<item
name=
"android:windowNoTitle"
>
true
</item>
<!-- 设置全屏 -->
<!--<item name="android:windowBackground">@drawable/start_back_icon</item>-->
<!--<item name="windowNoTitle">true</item>-->
<!--<item name="windowActionBar">true</item>-->
<!--<item name="android:windowContentOverlay">@null</item>-->
<!--<item name="android:windowNoTitle">true</item>-->
<!--<!– 设置全屏 –>-->
<!--<item name="android:windowFullscreen">true</item>-->
<!--<item name="android:navigationBarColor">@android:color/transparent</item>-->
<!--<item name="android:statusBarColor">@android:color/transparent</item>-->
<!--windowTranslucentNavigation这个属性设置成true,则navigationBarColor设置会失效-->
<!--<item name="android:windowTranslucentNavigation">true</item>-->
<!--<item name="android:windowTranslucentStatus">true</item>-->
<item
name=
"android:windowFullscreen"
>
true
</item>
<item
name=
"android:windowBackground"
>
@drawable/start_back_icon
</item>
</style>
</resources>
component_resource/src/main/res/drawable-xhdpi/common_icon_select.png
View replaced file @
0e1f197a
View file @
c9b7fb7e
541 Bytes
|
W:
|
H:
388 Bytes
|
W:
|
H:
2-up
Swipe
Onion skin
component_resource/src/main/res/drawable-xhdpi/rv_common_icon_pay_round.png
View replaced file @
0e1f197a
View file @
c9b7fb7e
1 KB
|
W:
|
H:
714 Bytes
|
W:
|
H:
2-up
Swipe
Onion skin
module_mine/src/main/java/com/rv/rvmine/traveler/AboutUsActivity.java
View file @
c9b7fb7e
...
...
@@ -2,6 +2,7 @@ package com.rv.rvmine.traveler;
import
android.content.Context
;
import
android.content.Intent
;
import
android.net.Uri
;
import
android.os.Bundle
;
import
android.view.View
;
...
...
@@ -42,15 +43,20 @@ public class AboutUsActivity extends BaseStatusActivity<CommonPresenter> {
}
@OnClick
({
R2
.
id
.
rl_item_privacy_policy
})
@OnClick
({
R2
.
id
.
rl_item_privacy_policy
,
R2
.
id
.
rl_item_customer_service
})
public
void
onViewClicked
(
View
view
)
{
int
id
=
view
.
getId
();
if
(
id
==
R
.
id
.
rl_item_privacy_policy
){
if
(
id
==
R
.
id
.
rl_item_privacy_policy
)
{
ARouter
.
getInstance
().
build
(
Constance
.
ACTIVITY_URL_WEBVIEW
)
.
withString
(
"title"
,
"隐私政策"
)
.
withString
(
"url"
,
ApiConfig
.
HTTP_URL_CAR_TYPE_NOTICE
)
.
withInt
(
"type"
,
19
)
.
navigation
();
}
else
if
(
id
==
R
.
id
.
rl_item_customer_service
)
{
Intent
intent
=
new
Intent
(
Intent
.
ACTION_DIAL
);
Uri
uri
=
Uri
.
parse
(
"tel:"
+
"4000369369"
);
intent
.
setData
(
uri
);
startActivity
(
intent
);
}
}
}
module_mine/src/main/java/com/rv/rvmine/traveler/PersonalInformationActivity.java
View file @
c9b7fb7e
...
...
@@ -615,9 +615,11 @@ public class PersonalInformationActivity extends BaseStatusActivity<PickerPresen
.
setType
(
new
boolean
[]{
true
,
true
,
true
,
false
,
false
,
false
})
//年月日时分秒 的显示与否,不设置则默认全部显示
.
setLabel
(
"年"
,
"月"
,
"日"
,
""
,
""
,
""
)
//默认设置为年月日时分秒
.
isCenterLabel
(
false
)
.
setDividerColor
(
Color
.
RED
)
.
setTextColorCenter
(
Color
.
RED
)
//设置选中项的颜色
.
setTextColorOut
(
Color
.
BLUE
)
//设置没有被选中项的颜色
.
setSubmitColor
(
getResources
().
getColor
(
R
.
color
.
colorMain
))
.
setCancelColor
(
getResources
().
getColor
(
R
.
color
.
colorMain
))
.
setDividerColor
(
getResources
().
getColor
(
R
.
color
.
gray_FFB74B
))
.
setTextColorCenter
(
getResources
().
getColor
(
R
.
color
.
colorMain
))
//设置选中项的颜色
.
setTextColorOut
(
getResources
().
getColor
(
R
.
color
.
colorGray
))
//设置没有被选中项的颜色
.
setContentSize
(
21
)
.
setDate
(
selectedDate
)
.
setLineSpacingMultiplier
(
1.2f
)
...
...
module_mine/src/main/res/layout/activity_about_us.xml
View file @
c9b7fb7e
...
...
@@ -41,6 +41,7 @@
android:paddingRight=
"@dimen/size_15"
>
<RelativeLayout
android:id=
"@+id/rl_item_customer_service"
android:layout_width=
"match_parent"
android:layout_height=
"@dimen/size_50"
>
...
...
module_mine/src/main/res/layout/rv_dialog_choose_gender.xml
View file @
c9b7fb7e
...
...
@@ -44,7 +44,7 @@
android:id=
"@+id/tv_ok"
android:layout_width=
"match_parent"
android:layout_height=
"@dimen/size_50"
android:background=
"@color/
colorYellow
"
android:background=
"@color/
gray_FFB74B
"
android:gravity=
"center"
android:text=
"确认"
/>
...
...
module_tourism/src/main/java/com/rv/tourism/adapter/TravelBookingDepartureAdapter.java
0 → 100644
View file @
c9b7fb7e
package
com
.
rv
.
tourism
.
adapter
;
import
android.widget.ImageView
;
import
com.chad.library.adapter.base.BaseQuickAdapter
;
import
com.chad.library.adapter.base.BaseViewHolder
;
import
com.ruiwenliu.wrapper.util.glide.GlideManager
;
import
com.rv.tourism.R
;
import
com.rv.tourism.bean.BeanPopularBrigade
;
import
com.rv.tourism.bean.BeanTourDetailData
;
/**
* 选择出发城市
*/
public
class
TravelBookingDepartureAdapter
extends
BaseQuickAdapter
<
BeanTourDetailData
.
DataBeanX
.
TourDepartVo
,
BaseViewHolder
>
{
private
int
selectPosition
;
public
TravelBookingDepartureAdapter
()
{
super
(
R
.
layout
.
rv_item_travel_booking_departure
);
}
@Override
protected
void
convert
(
BaseViewHolder
helper
,
BeanTourDetailData
.
DataBeanX
.
TourDepartVo
item
)
{
helper
.
setText
(
R
.
id
.
tv_company
,
item
.
getName
());
helper
.
setText
(
R
.
id
.
tv_address
,
item
.
getAddress
());
if
(
selectPosition
==
mData
.
indexOf
(
item
))
{
helper
.
getView
(
R
.
id
.
iv_company_select
).
setSelected
(
true
);
}
else
{
helper
.
getView
(
R
.
id
.
iv_company_select
).
setSelected
(
false
);
}
}
public
void
setSelectPosition
(
int
position
)
{
this
.
selectPosition
=
position
;
notifyDataSetChanged
();
}
}
module_tourism/src/main/java/com/rv/tourism/adapter/TravelBookingDeparturetimeAdapter.java
0 → 100644
View file @
c9b7fb7e
package
com
.
rv
.
tourism
.
adapter
;
import
android.support.v4.content.ContextCompat
;
import
com.chad.library.adapter.base.BaseQuickAdapter
;
import
com.chad.library.adapter.base.BaseViewHolder
;
import
com.rv.tourism.R
;
import
com.rv.tourism.bean.BeanPopularBrigade
;
import
com.rv.tourism.bean.BeanTourDetailData
;
/**
* 选择出发时间
*/
public
class
TravelBookingDeparturetimeAdapter
extends
BaseQuickAdapter
<
BeanTourDetailData
.
DataBeanX
.
TourDepartTimeVo
,
BaseViewHolder
>
{
private
int
selectPosition
;
public
TravelBookingDeparturetimeAdapter
()
{
super
(
R
.
layout
.
rv_item_travel_booking_departure_time
);
}
@Override
protected
void
convert
(
BaseViewHolder
helper
,
BeanTourDetailData
.
DataBeanX
.
TourDepartTimeVo
item
)
{
String
time
=
item
.
getStartTime
()
+
getWeek
(
item
.
getStartWeek
())
+
"~"
+
item
.
getEndTime
()
+
getWeek
(
item
.
getEndWeek
());
helper
.
setText
(
R
.
id
.
tv_time
,
time
);
if
(
"0"
.
equals
(
item
.
getOverdue
()))
{
if
(
selectPosition
==
mData
.
indexOf
(
item
))
{
helper
.
getView
(
R
.
id
.
iv_time_select
).
setSelected
(
true
);
}
else
{
helper
.
getView
(
R
.
id
.
iv_time_select
).
setSelected
(
false
);
}
helper
.
setTextColor
(
R
.
id
.
tv_time
,
ContextCompat
.
getColor
(
mContext
,
R
.
color
.
colorMain
));
}
else
{
helper
.
setTextColor
(
R
.
id
.
tv_time
,
ContextCompat
.
getColor
(
mContext
,
R
.
color
.
textGray
));
}
}
public
void
setSelectPosition
(
int
position
)
{
this
.
selectPosition
=
position
;
notifyDataSetChanged
();
}
public
String
getWeek
(
int
no
)
{
String
week
=
""
;
switch
(
no
)
{
case
0
:
week
=
"周日"
;
break
;
case
1
:
week
=
"周一"
;
break
;
case
2
:
week
=
"周二"
;
break
;
case
3
:
week
=
"周三"
;
break
;
case
4
:
week
=
"周四"
;
break
;
case
5
:
week
=
"周五"
;
break
;
case
6
:
week
=
"周六"
;
break
;
}
return
week
;
}
}
module_tourism/src/main/java/com/rv/tourism/api/TourismApi.java
View file @
c9b7fb7e
...
...
@@ -37,5 +37,7 @@ public interface TourismApi extends RvFrameConfig {
String
TOUR_DETAIL
=
HOST
+
"/api/tour/tourGood/app/unauth/usable/%s"
;
// 旅游详情
String
TOUR_UNAUTH_DETAILS
=
HOST
+
"/api/tour/good/app/unauth/details"
;
// 商品旅游详情数据
}
module_tourism/src/main/java/com/rv/tourism/bean/BeanTourDetailData.java
0 → 100644
View file @
c9b7fb7e
package
com
.
rv
.
tourism
.
bean
;
import
com.ruiwenliu.wrapper.base.BaseBean
;
import
java.util.ArrayList
;
import
java.util.List
;
public
class
BeanTourDetailData
extends
BaseBean
{
private
boolean
rel
;
private
DataBeanX
data
;
public
boolean
isRel
()
{
return
rel
;
}
public
void
setRel
(
boolean
rel
)
{
this
.
rel
=
rel
;
}
public
DataBeanX
getData
()
{
return
data
;
}
public
void
setData
(
DataBeanX
data
)
{
this
.
data
=
data
;
}
public
static
class
DataBeanX
{
private
String
id
;
private
String
name
;
private
String
cover
;
private
double
stock
;
private
double
price
;
private
double
childPrice
;
private
List
<
TourDepartTimeVo
>
tourDepartTimeVo
;
private
List
<
TourDepartVo
>
tourDepartVo
;
public
String
getId
()
{
return
id
;
}
public
void
setId
(
String
id
)
{
this
.
id
=
id
;
}
public
String
getName
()
{
return
name
;
}
public
void
setName
(
String
name
)
{
this
.
name
=
name
;
}
public
String
getCover
()
{
return
cover
;
}
public
void
setCover
(
String
cover
)
{
this
.
cover
=
cover
;
}
public
double
getPrice
()
{
return
price
;
}
public
void
setPrice
(
double
price
)
{
this
.
price
=
price
;
}
public
double
getChildPrice
()
{
return
childPrice
;
}
public
void
setChildPrice
(
double
childPrice
)
{
this
.
childPrice
=
childPrice
;
}
public
List
<
TourDepartTimeVo
>
getTourDepartTimeVo
()
{
return
tourDepartTimeVo
;
}
public
void
setTourDepartTimeVo
(
List
<
TourDepartTimeVo
>
tourDepartTimeVo
)
{
this
.
tourDepartTimeVo
=
tourDepartTimeVo
;
}
public
List
<
TourDepartVo
>
getTourDepartVo
()
{
return
tourDepartVo
;
}
public
void
setTourDepartVo
(
List
<
TourDepartVo
>
tourDepartVo
)
{
this
.
tourDepartVo
=
tourDepartVo
;
}
public
double
getStock
()
{
return
stock
;
}
public
void
setStock
(
double
stock
)
{
this
.
stock
=
stock
;
}
public
List
<
TourDepartVo
>
getDeparture
()
{
ArrayList
<
TourDepartVo
>
list
=
new
ArrayList
<>();
if
(
tourDepartVo
!=
null
)
{
for
(
int
i
=
0
;
i
<
tourDepartVo
.
size
();
i
++)
{
if
(
"0"
.
equals
(
tourDepartVo
.
get
(
i
).
getType
()))
{
list
.
add
(
tourDepartVo
.
get
(
i
));
}
}
}
return
list
;
}
public
List
<
TourDepartVo
>
getEndDeparture
()
{
ArrayList
<
TourDepartVo
>
list
=
new
ArrayList
<>();
if
(
tourDepartVo
!=
null
)
{
for
(
int
i
=
0
;
i
<
tourDepartVo
.
size
();
i
++)
{
if
(
"2"
.
equals
(
tourDepartVo
.
get
(
i
).
getType
()))
{
list
.
add
(
tourDepartVo
.
get
(
i
));
}
}
}
return
list
;
}
public
static
class
TourDepartTimeVo
{
private
String
id
;
//": 300,
private
String
goodId
;
//": 102,
private
String
startTime
;
//": "2019-08-20",
private
String
endTime
;
//": "2019-08-21",
private
int
startWeek
;
//": 2,
private
int
endWeek
;
//": 3,
private
String
speId
;
//": "0",
private
String
price
;
//": 0.02,
private
String
childPrice
;
//": 0.01,
private
String
stock
;
//": 0,
private
String
overdue
;
//": 1
public
String
getId
()
{
return
id
;
}
public
void
setId
(
String
id
)
{
this
.
id
=
id
;
}
public
String
getGoodId
()
{
return
goodId
;
}
public
void
setGoodId
(
String
goodId
)
{
this
.
goodId
=
goodId
;
}
public
String
getStartTime
()
{
return
startTime
;
}
public
void
setStartTime
(
String
startTime
)
{
this
.
startTime
=
startTime
;
}
public
String
getEndTime
()
{
return
endTime
;
}
public
void
setEndTime
(
String
endTime
)
{
this
.
endTime
=
endTime
;
}
public
int
getStartWeek
()
{
return
startWeek
;
}
public
void
setStartWeek
(
int
startWeek
)
{
this
.
startWeek
=
startWeek
;
}
public
int
getEndWeek
()
{
return
endWeek
;
}
public
void
setEndWeek
(
int
endWeek
)
{
this
.
endWeek
=
endWeek
;
}
public
String
getSpeId
()
{
return
speId
;
}
public
void
setSpeId
(
String
speId
)
{
this
.
speId
=
speId
;
}
public
String
getPrice
()
{
return
price
;
}
public
void
setPrice
(
String
price
)
{
this
.
price
=
price
;
}
public
String
getChildPrice
()
{
return
childPrice
;
}
public
void
setChildPrice
(
String
childPrice
)
{
this
.
childPrice
=
childPrice
;
}
public
String
getStock
()
{
return
stock
;
}
public
void
setStock
(
String
stock
)
{
this
.
stock
=
stock
;
}
public
String
getOverdue
()
{
return
overdue
;
}
public
void
setOverdue
(
String
overdue
)
{
this
.
overdue
=
overdue
;
}
}
public
static
class
TourDepartVo
{
private
String
id
;
//": 742,
private
String
goodId
;
//": 102,
private
String
name
;
//": "欣新房车控股集团",
private
String
address
;
//": "松山湖",
private
String
companyId
;
//": "1",
private
String
province
;
//": 440000,
private
String
provinceName
;
//": "广东省",
private
String
city
;
//": 441900,
private
String
cityName
;
//": "东莞市",
private
String
departTime
;
//": 30600,
private
String
longitude
;
//": 113.9069685,
private
String
latitude
;
//": 23.0056826,
private
String
type
;
//": 0,
private
String
rank
;
//": 0
public
String
getId
()
{
return
id
;
}
public
void
setId
(
String
id
)
{
this
.
id
=
id
;
}
public
String
getGoodId
()
{
return
goodId
;
}
public
void
setGoodId
(
String
goodId
)
{
this
.
goodId
=
goodId
;
}
public
String
getName
()
{
return
name
;
}
public
void
setName
(
String
name
)
{
this
.
name
=
name
;
}
public
String
getAddress
()
{
return
address
;
}
public
void
setAddress
(
String
address
)
{
this
.
address
=
address
;
}
public
String
getCompanyId
()
{
return
companyId
;
}
public
void
setCompanyId
(
String
companyId
)
{
this
.
companyId
=
companyId
;
}
public
String
getProvince
()
{
return
province
;
}
public
void
setProvince
(
String
province
)
{
this
.
province
=
province
;
}
public
String
getProvinceName
()
{
return
provinceName
;
}
public
void
setProvinceName
(
String
provinceName
)
{
this
.
provinceName
=
provinceName
;
}
public
String
getCity
()
{
return
city
;
}
public
void
setCity
(
String
city
)
{
this
.
city
=
city
;
}
public
String
getCityName
()
{
return
cityName
;
}
public
void
setCityName
(
String
cityName
)
{
this
.
cityName
=
cityName
;
}
public
String
getDepartTime
()
{
return
departTime
;
}
public
void
setDepartTime
(
String
departTime
)
{
this
.
departTime
=
departTime
;
}
public
String
getLongitude
()
{
return
longitude
;
}
public
void
setLongitude
(
String
longitude
)
{
this
.
longitude
=
longitude
;
}
public
String
getLatitude
()
{
return
latitude
;
}
public
void
setLatitude
(
String
latitude
)
{
this
.
latitude
=
latitude
;
}
public
String
getType
()
{
return
type
;
}
public
void
setType
(
String
type
)
{
this
.
type
=
type
;
}
public
String
getRank
()
{
return
rank
;
}
public
void
setRank
(
String
rank
)
{
this
.
rank
=
rank
;
}
}
}
}
module_tourism/src/main/java/com/rv/tourism/dialog/TravelBookingDialog.java
0 → 100644
View file @
c9b7fb7e
package
com
.
rv
.
tourism
.
dialog
;
import
android.content.Context
;
import
android.os.Bundle
;
import
android.support.annotation.NonNull
;
import
android.support.v7.widget.LinearLayoutManager
;
import
android.support.v7.widget.RecyclerView
;
import
android.view.Gravity
;
import
android.view.View
;
import
android.view.ViewGroup
;
import
android.widget.TextView
;
import
android.widget.Toast
;
import
com.chad.library.adapter.base.BaseQuickAdapter
;
import
com.ruiwenliu.wrapper.dialog.BaseDialog
;
import
com.ruiwenliu.wrapper.util.ViewHolder
;
import
com.rv.component.utils.DisplayUtil
;
import
com.rv.tourism.R
;
import
com.rv.tourism.adapter.TravelBookingDepartureAdapter
;
import
com.rv.tourism.adapter.TravelBookingDeparturetimeAdapter
;
import
com.rv.tourism.bean.BeanOrderParam
;
import
com.rv.tourism.bean.BeanTourDetailData
;
import
java.util.List
;
/**
* 旅游预定弹框
*/
public
class
TravelBookingDialog
extends
BaseDialog
{
private
TravelBookingDepartureAdapter
mAdapter
;
private
TravelBookingDeparturetimeAdapter
mTimeAdapter
;
private
int
adufe
=
1
;
private
int
chile
=
0
;
private
TextView
adultPrice
;
private
TextView
childPrice
;
private
OnOKClickListener
listener
;
private
BeanTourDetailData
.
DataBeanX
.
TourDepartTimeVo
tourDepartTimeVo
;
private
BeanTourDetailData
.
DataBeanX
.
TourDepartVo
tourDepartVo
;
private
BeanTourDetailData
.
DataBeanX
bean
;
public
TravelBookingDialog
(
@NonNull
Context
context
)
{
super
(
context
);
setDialogParams
(
ViewGroup
.
LayoutParams
.
MATCH_PARENT
,
DisplayUtil
.
dip2px
(
context
,
450
),
Gravity
.
BOTTOM
);
}
@Override
public
void
helper
(
ViewHolder
helper
)
{
super
.
helper
(
helper
);
RecyclerView
rcDeparturetime
=
helper
.
getView
(
R
.
id
.
rc_departuretime
);
RecyclerView
rcDeparture
=
helper
.
getView
(
R
.
id
.
rc_departure
);
adultPrice
=
helper
.
getView
(
R
.
id
.
tv_adult_price
);
childPrice
=
helper
.
getView
(
R
.
id
.
tv_child_price
);
mAdapter
=
new
TravelBookingDepartureAdapter
();
rcDeparture
.
setLayoutManager
(
new
LinearLayoutManager
(
getDialogContext
()));
rcDeparture
.
setNestedScrollingEnabled
(
false
);
rcDeparture
.
setAdapter
(
mAdapter
);
mTimeAdapter
=
new
TravelBookingDeparturetimeAdapter
();
rcDeparturetime
.
setLayoutManager
(
new
LinearLayoutManager
(
getDialogContext
()));
rcDeparturetime
.
setNestedScrollingEnabled
(
false
);
rcDeparturetime
.
setAdapter
(
mTimeAdapter
);
mAdapter
.
setOnItemClickListener
(
new
BaseQuickAdapter
.
OnItemClickListener
()
{
@Override
public
void
onItemClick
(
BaseQuickAdapter
adapters
,
View
view
,
int
position
)
{
tourDepartVo
=
(
BeanTourDetailData
.
DataBeanX
.
TourDepartVo
)
adapters
.
getItem
(
position
);
mAdapter
.
setSelectPosition
(
position
);
}
});
mTimeAdapter
.
setOnItemClickListener
(
new
BaseQuickAdapter
.
OnItemClickListener
()
{
@Override
public
void
onItemClick
(
BaseQuickAdapter
adapter
,
View
view
,
int
position
)
{
BeanTourDetailData
.
DataBeanX
.
TourDepartTimeVo
item
=
(
BeanTourDetailData
.
DataBeanX
.
TourDepartTimeVo
)
adapter
.
getItem
(
position
);
if
(
"0"
.
equals
(
item
.
getOverdue
()))
{
tourDepartTimeVo
=
item
;
mTimeAdapter
.
setSelectPosition
(
position
);
}
}
});
initOnclick
(
helper
);
}
private
void
initOnclick
(
final
ViewHolder
helper
)
{
helper
.
setOnClickListener
(
new
View
.
OnClickListener
()
{
@Override
public
void
onClick
(
View
v
)
{
int
id
=
v
.
getId
();
if
(
id
==
R
.
id
.
iv_close
)
{
dismiss
();
}
else
if
(
id
==
R
.
id
.
tv_item_booking_adult_less
)
{
if
(
adufe
>
0
)
{
adufe
--;
helper
.
setText
(
R
.
id
.
tv_booking_adult
,
String
.
valueOf
(
adufe
));
}
}
else
if
(
id
==
R
.
id
.
tv_item_booking_adult_add
)
{
adufe
++;
helper
.
setText
(
R
.
id
.
tv_booking_adult
,
String
.
valueOf
(
adufe
));
}
else
if
(
id
==
R
.
id
.
tv_item_booking_child_less
)
{
if
(
chile
>
0
)
{
chile
--;
helper
.
setText
(
R
.
id
.
tv_booking_child
,
String
.
valueOf
(
chile
));
}
}
else
if
(
id
==
R
.
id
.
tv_item_booking_child_add
)
{
chile
++;
helper
.
setText
(
R
.
id
.
tv_booking_child
,
String
.
valueOf
(
chile
));
}
else
if
(
id
==
R
.
id
.
tv_travel_booking_ok
)
{
if
(
adufe
<
chile
)
{
Toast
.
makeText
(
getContext
(),
"成人出游人数要大于或等于儿童出游人数"
,
Toast
.
LENGTH_SHORT
).
show
();
return
;
}
if
(
adufe
==
0
)
{
Toast
.
makeText
(
getContext
(),
"成人出游人数不能为空!"
,
Toast
.
LENGTH_SHORT
).
show
();
return
;
}
List
<
BeanTourDetailData
.
DataBeanX
.
TourDepartVo
>
endDeparture
=
bean
.
getEndDeparture
();
if
(
listener
!=
null
&&
bean
!=
null
&&
endDeparture
!=
null
&&
tourDepartTimeVo
!=
null
&&
tourDepartVo
!=
null
)
{
BeanOrderParam
beanOrderParam
=
new
BeanOrderParam
();
beanOrderParam
.
setEndTime
(
tourDepartTimeVo
.
getEndTime
());
beanOrderParam
.
setGoodId
(
bean
.
getId
());
beanOrderParam
.
setPrice
(
bean
.
getPrice
());
beanOrderParam
.
setChildPrice
(
bean
.
getChildPrice
());
beanOrderParam
.
setSpePriceId
(
tourDepartTimeVo
.
getId
());
beanOrderParam
.
setAdultNum
(
String
.
valueOf
(
adufe
));
beanOrderParam
.
setChildNum
(
String
.
valueOf
(
chile
));
String
time
=
tourDepartTimeVo
.
getStartTime
()
+
getWeek
(
tourDepartTimeVo
.
getStartWeek
())
+
"~"
+
tourDepartTimeVo
.
getEndTime
()
+
getWeek
(
tourDepartTimeVo
.
getEndWeek
());
beanOrderParam
.
setTime
(
time
);
beanOrderParam
.
setEndAddr
(
endDeparture
.
get
(
0
).
getAddress
());
beanOrderParam
.
setStartAddr
(
tourDepartVo
.
getProvinceName
()
+
tourDepartVo
.
getCityName
()
+
tourDepartVo
.
getAddress
());
beanOrderParam
.
setStartTime
(
tourDepartTimeVo
.
getStartTime
());
beanOrderParam
.
setStartCompanyId
(
tourDepartVo
.
getCompanyId
());
beanOrderParam
.
setStartCompanyName
(
tourDepartVo
.
getName
());
beanOrderParam
.
setSiteId
(
tourDepartVo
.
getId
());
listener
.
onClickData
(
beanOrderParam
);
}
dismiss
();
}
}
},
R
.
id
.
iv_close
,
R
.
id
.
tv_item_booking_adult_less
,
R
.
id
.
tv_item_booking_adult_add
,
R
.
id
.
tv_item_booking_child_less
,
R
.
id
.
tv_item_booking_child_add
,
R
.
id
.
tv_travel_booking_ok
);
}
public
void
setNewData
(
BeanTourDetailData
.
DataBeanX
bean
)
{
this
.
bean
=
bean
;
if
(
mAdapter
!=
null
&&
mTimeAdapter
!=
null
&&
bean
!=
null
)
{
mAdapter
.
setNewData
(
bean
.
getDeparture
());
mTimeAdapter
.
setNewData
(
bean
.
getTourDepartTimeVo
());
}
if
(
adultPrice
!=
null
&&
childPrice
!=
null
&&
bean
!=
null
)
{
adultPrice
.
setText
(
"成人:¥"
+
bean
.
getPrice
()
+
"/人"
);
childPrice
.
setText
(
"儿童:¥"
+
bean
.
getChildPrice
()
+
"/人"
);
}
if
(
bean
!=
null
&&
bean
.
getDeparture
()
!=
null
&&
bean
.
getDeparture
().
size
()
>
0
)
{
tourDepartVo
=
bean
.
getDeparture
().
get
(
0
);
}
if
(
bean
!=
null
&&
bean
.
getTourDepartTimeVo
()
!=
null
&&
bean
.
getTourDepartTimeVo
().
size
()
>
0
)
{
for
(
int
i
=
0
;
i
<
bean
.
getTourDepartTimeVo
().
size
();
i
++)
{
if
(
"0"
.
equals
(
bean
.
getTourDepartTimeVo
().
get
(
i
).
getOverdue
()))
{
tourDepartTimeVo
=
bean
.
getTourDepartTimeVo
().
get
(
i
);
mTimeAdapter
.
setSelectPosition
(
i
);
break
;
}
}
}
}
@Override
public
int
getViewLayout
()
{
return
R
.
layout
.
dialog_travel_booking
;
}
public
void
setOnDayClickListener
(
OnOKClickListener
listener
)
{
this
.
listener
=
listener
;
}
public
interface
OnOKClickListener
{
void
onClickData
(
BeanOrderParam
data
);
}
public
String
getWeek
(
int
no
)
{
String
week
=
""
;
switch
(
no
)
{
case
0
:
week
=
"周日"
;
break
;
case
1
:
week
=
"周一"
;
break
;
case
2
:
week
=
"周二"
;
break
;
case
3
:
week
=
"周三"
;
break
;
case
4
:
week
=
"周四"
;
break
;
case
5
:
week
=
"周五"
;
break
;
case
6
:
week
=
"周六"
;
break
;
}
return
week
;
}
}
module_tourism/src/main/java/com/rv/tourism/other/TravelDetailsActivity.java
View file @
c9b7fb7e
...
...
@@ -21,6 +21,7 @@ import com.alibaba.android.arouter.facade.annotation.Autowired;
import
com.alibaba.android.arouter.facade.annotation.Route
;
import
com.alibaba.android.arouter.launcher.ARouter
;
import
com.alibaba.fastjson.JSON
;
import
com.baidu.mapapi.model.LatLng
;
import
com.base.utils.ui.datetime.selector.util.TextUtil
;
import
com.frame.base.bus.IDCardCertificationEvent
;
import
com.frame.base.bus.Observer
;
...
...
@@ -34,17 +35,23 @@ import com.ruiwenliu.wrapper.SPConstance;
import
com.ruiwenliu.wrapper.base.BaseBean
;
import
com.ruiwenliu.wrapper.base.BaseStatusActivity
;
import
com.ruiwenliu.wrapper.bean.BeanUserInfo
;
import
com.ruiwenliu.wrapper.util.MapUtil
;
import
com.ruiwenliu.wrapper.util.ViewHolder
;
import
com.ruiwenliu.wrapper.util.um.CustomShareListener
;
import
com.ruiwenliu.wrapper.util.um.ShareManager
;
import
com.ruiwenliu.wrapper.weight.TitleView
;
import
com.rv.component.dialog.BottomPromptDialog
;
import
com.rv.component.utils.Cookie
;
import
com.rv.component.utils.IsAppInstall
;
import
com.rv.component.utils.LocationRecord
;
import
com.rv.tourism.R
;
import
com.rv.tourism.R2
;
import
com.rv.tourism.api.TourismApi
;
import
com.rv.tourism.bean.BeanOrderParam
;
import
com.rv.tourism.bean.BeanTourDetail
;
import
com.rv.tourism.bean.BeanTourDetailData
;
import
com.rv.tourism.bean.BeanTourismCollection
;
import
com.rv.tourism.dialog.TravelBookingDialog
;
import
com.rv.tourism.presenter.TourismPresenter
;
import
com.tencent.smtt.export.external.interfaces.WebResourceRequest
;
import
com.tencent.smtt.sdk.WebChromeClient
;
...
...
@@ -94,6 +101,8 @@ public class TravelDetailsActivity extends BaseStatusActivity<TourismPresenter>
private
String
mCollectId
;
private
static
String
isCollection
=
"0"
;
//0 没有收藏 1 收藏
private
ClipboardManager
myClipboard
;
private
TravelBookingDialog
travelBookingDialog
;
private
BeanTourDetailData
.
DataBeanX
DetailsData
;
@Autowired
()
...
...
@@ -121,6 +130,7 @@ public class TravelDetailsActivity extends BaseStatusActivity<TourismPresenter>
// .putExtra("dataBean", dataBean);
// }
@Override
protected
int
setLayout
()
{
return
R
.
layout
.
activity_travel_details
;
...
...
@@ -196,11 +206,6 @@ public class TravelDetailsActivity extends BaseStatusActivity<TourismPresenter>
}
else
if
(
id
==
R
.
id
.
tv_appointment
)
{
//预订
//登录
if
(
TextUtils
.
isEmpty
(
OkGoUtil
.
getToken
()))
{
ARouter
.
getInstance
().
build
(
Constance
.
ACTIVITY_URL_LOGINRV
).
navigation
();
return
;
}
//实名认证
// BeanUserInfo.UserInfo userInfo = getUserInfo();
...
...
@@ -210,10 +215,37 @@ public class TravelDetailsActivity extends BaseStatusActivity<TourismPresenter>
// return;
// }
// }
//
mWebView
.
loadUrl
(
"JavaScript:openModal()"
);
// Android调用h5
// mWebView.loadUrl("JavaScript:openModal()"); // Android调用h5
travelBooking
();
}
}
/**
* 预定
*/
private
void
travelBooking
()
{
if
(
TextUtils
.
isEmpty
(
OkGoUtil
.
getToken
()))
{
ARouter
.
getInstance
().
build
(
Constance
.
ACTIVITY_URL_LOGINRV
).
navigation
();
return
;
}
if
(
DetailsData
!=
null
)
{
if
(
travelBookingDialog
==
null
)
{
travelBookingDialog
=
new
TravelBookingDialog
(
mActivity
);
}
travelBookingDialog
.
setNewData
(
DetailsData
);
travelBookingDialog
.
show
();
}
travelBookingDialog
.
setOnDayClickListener
(
new
TravelBookingDialog
.
OnOKClickListener
()
{
@Override
public
void
onClickData
(
BeanOrderParam
data
)
{
startActivity
(
TravelerConfirmOrderActivity
.
getIntent
(
mActivity
,
data
));
}
});
}
private
void
cancelCollect
()
{
...
...
@@ -239,6 +271,16 @@ public class TravelDetailsActivity extends BaseStatusActivity<TourismPresenter>
if
(
TextUtils
.
isEmpty
(
name
)
||
TextUtils
.
isEmpty
(
url
))
{
getTourDetail
();
}
getDetailData
();
}
/**
* 详情页面数据请求
*/
private
void
getDetailData
()
{
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"goodId"
,
id
);
mPresenter
.
getData
(
RvFrameConfig
.
HOST
,
4
,
TourismApi
.
TOUR_UNAUTH_DETAILS
,
BeanTourDetailData
.
class
,
map
,
false
);
}
//收藏请求
...
...
@@ -280,7 +322,20 @@ public class TravelDetailsActivity extends BaseStatusActivity<TourismPresenter>
initShare
(
webUrl
+
"&shareType=app&code="
+
code
,
name
,
content
,
url
);
}
break
;
case
4
:
setDetailsData
((
BeanTourDetailData
)
result
);
break
;
}
}
private
void
setDetailsData
(
BeanTourDetailData
bean
)
{
DetailsData
=
bean
.
getData
();
if
(
DetailsData
!=
null
&&
DetailsData
.
getStock
()
<
1
)
{
TvAppointment
.
setEnabled
(
false
);
TvAppointment
.
setText
(
"已售完"
);
TvAppointment
.
setBackground
(
mActivity
.
getResources
().
getDrawable
(
R
.
color
.
gray_707070
));
}
}
...
...
@@ -450,13 +505,18 @@ public class TravelDetailsActivity extends BaseStatusActivity<TourismPresenter>
}
@JavascriptInterface
public
void
showButton
()
{
mWebView
.
post
(
new
Runnable
()
{
@Override
public
void
run
()
{
llItemBottom
.
setVisibility
(
View
.
VISIBLE
);
public
void
showDialog
()
{
travelBooking
();
}
});
@JavascriptInterface
public
void
showButton
()
{
// mWebView.post(new Runnable() {
// @Override
// public void run() {
// llItemBottom.setVisibility(View.VISIBLE);
// }
// });
}
...
...
@@ -464,51 +524,50 @@ public class TravelDetailsActivity extends BaseStatusActivity<TourismPresenter>
@JavascriptInterface
public
void
hideButton
()
{
mWebView
.
post
(
new
Runnable
()
{
@Override
public
void
run
()
{
llItemBottom
.
setVisibility
(
View
.
GONE
);
}
});
//
mWebView.post(new Runnable() {
//
@Override
//
public void run() {
//
llItemBottom.setVisibility(View.GONE);
//
}
//
});
}
@JavascriptInterface
public
void
tourStock
(
int
num
)
{
if
(
num
>
0
)
{
mWebView
.
post
(
new
Runnable
()
{
@Override
public
void
run
()
{
}
});
}
else
{
mWebView
.
post
(
new
Runnable
()
{
@Override
public
void
run
()
{
TvAppointment
.
setEnabled
(
false
);
TvAppointment
.
setText
(
"已售完"
);
TvAppointment
.
setBackground
(
mActivity
.
getResources
().
getDrawable
(
R
.
color
.
gray_707070
));
}
});
}
// if (num > 0) {
// mWebView.post(new Runnable() {
// @Override
// public void run() {
//
// }
// });
// } else {
// mWebView.post(new Runnable() {
// @Override
// public void run() {
// TvAppointment.setEnabled(false);
// TvAppointment.setText("已售完");
// TvAppointment.setBackground(mActivity.getResources().getDrawable(R.color.gray_707070));
// }
// });
// }
}
@JavascriptInterface
public
void
readyOrder
(
String
orderJson
)
{
if
(!
TextUtil
.
isEmpty
(
orderJson
))
{
beanOrderParam
=
new
Gson
().
fromJson
(
orderJson
,
new
TypeToken
<
BeanOrderParam
>()
{
}.
getType
());
if
(
Integer
.
valueOf
(
beanOrderParam
.
getAdultNum
())
<
Integer
.
valueOf
(
beanOrderParam
.
getChildNum
()))
{
showToast
(
"成人数要大于或等于儿童数"
);
}
else
if
(
Integer
.
valueOf
(
beanOrderParam
.
getAdultNum
())
==
0
)
{
showToast
(
"成人数不能为空!"
);
}
else
{
startActivity
(
TravelerConfirmOrderActivity
.
getIntent
(
mActivity
,
beanOrderParam
));
}
}
//
if (!TextUtil.isEmpty(orderJson)) {
//
beanOrderParam = new Gson().fromJson(orderJson,
//
new TypeToken<BeanOrderParam>() {
//
}.getType());
//
if (Integer.valueOf(beanOrderParam.getAdultNum()) < Integer.valueOf(beanOrderParam.getChildNum())) {
//
showToast("成人数要大于或等于儿童数");
//
} else if (Integer.valueOf(beanOrderParam.getAdultNum()) == 0) {
//
showToast("成人数不能为空!");
//
} else {
//
startActivity(TravelerConfirmOrderActivity.getIntent(mActivity, beanOrderParam));
//
}
//
//
}
}
@JavascriptInterface
...
...
module_tourism/src/main/res/layout/dialog_travel_booking.xml
0 → 100644
View file @
c9b7fb7e
This diff is collapsed.
Click to expand it.
module_tourism/src/main/res/layout/rv_item_travel_booking_departure.xml
0 → 100644
View file @
c9b7fb7e
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:orientation=
"vertical"
>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"@dimen/size_10"
android:layout_marginBottom=
"@dimen/size_10"
android:gravity=
"center_vertical"
android:orientation=
"horizontal"
>
<ImageView
android:id=
"@+id/iv_company_select"
android:layout_width=
"@dimen/size_20"
android:layout_height=
"@dimen/size_20"
android:src=
"@drawable/selector_rv_icon_mark"
/>
<LinearLayout
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:layout_marginLeft=
"@dimen/size_10"
android:layout_weight=
"1"
android:orientation=
"vertical"
>
<TextView
android:id=
"@+id/tv_company"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"欣新房车(松山湖)有限公司"
android:textColor=
"@color/colorMain"
android:textSize=
"@dimen/text_14"
/>
<TextView
android:id=
"@+id/tv_address"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"@dimen/size_3"
android:text=
"东莞市和兴街与莞樟路交叉口西100米"
android:textColor=
"@color/textGray"
android:textSize=
"@dimen/text_12"
/>
</LinearLayout>
</LinearLayout>
<include
layout=
"@layout/common_line"
/>
</LinearLayout>
\ No newline at end of file
module_tourism/src/main/res/layout/rv_item_travel_booking_departure_time.xml
0 → 100644
View file @
c9b7fb7e
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:orientation=
"vertical"
>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"@dimen/size_10"
android:layout_marginBottom=
"@dimen/size_10"
android:gravity=
"center_vertical"
android:orientation=
"horizontal"
>
<ImageView
android:id=
"@+id/iv_time_select"
android:layout_width=
"@dimen/size_20"
android:layout_height=
"@dimen/size_20"
android:src=
"@drawable/selector_rv_icon_mark"
/>
<TextView
android:id=
"@+id/tv_time"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginLeft=
"@dimen/size_10"
android:text=
"2019-06-12周三~2019-06-18周二"
android:textColor=
"@color/colorMain"
android:textSize=
"@dimen/text_14"
/>
</LinearLayout>
<include
layout=
"@layout/common_line"
/>
</LinearLayout>
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment