Android --- 倒计时(个人笔记记录)

hours_tv = findViewById(R.id.hours_tv);

minutes_tv = findViewById(R.id.minutes_tv);

seconds_tv = findViewById(R.id.seconds_tv);

// 商家信息

tv_organ_name = findViewById(R.id.tv_organ_name);

tv_user_name = findViewById(R.id.tv_user_name);

tv_tel = findViewById(R.id.tv_tel);

tv_address = findViewById(R.id.tv_address);

// 课程信息

tv_course_name = findViewById(R.id.tv_course_name);

tv_category = findViewById(R.id.tv_category);

tv_week = findViewById(R.id.tv_week);

tv_begin_end_time = findViewById(R.id.tv_begin_end_time);

tv_price1 = findViewById(R.id.tv_price1);

tv_price2 = findViewById(R.id.tv_price2);

tv_price3 = findViewById(R.id.tv_price3);

tv_course_room = findViewById(R.id.tv_course_room);

order_id = findViewById(R.id.order_id);

order_time = findViewById(R.id.order_time);

rl_04.setOnClickListener(this);

rl_05.setOnClickListener(this);

btn_pay.setOnClickListener(this);

ll_fanHui.setOnClickListener(this);

// 默认支付宝后面的对勾隐藏

pay_success_icon_zhifubao.setVisibility(View.INVISIBLE);

// 创建布局管理

GridLayoutManager manager = new GridLayoutManager(getApplicationContext(),1,GridLayoutManager.VERTICAL,false);

GridItemDecoration divider = new GridItemDecoration.Builder(getApplicationContext())

.setHorizontalSpan(R.dimen.h_column_padding)

.setColorResource(R.color.grey_main) // 线的颜色

.setShowLastLine(false) // 是否显示最后一行的线

.build();

rv_child_info.addItemDecoration(divider);

rv_child_info.setLayoutManager(manager);

}

public void initData(){

bundle = this.getIntent().getExtras();

orderId = bundle.getString(“orderId”);

timeId = bundle.getString(“timeId”);

enrollTime = bundle.getString(“enrollTime”);

organUserId = bundle.getString(“organUserId”);

System.out.println(“enrollTime–” +enrollTime);

SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);

try {

String ss = DateTimeUtil.dealDateFormat(enrollTime);

System.out.println(“ss–”+ss);

//当前系统时间

Date currentTime = sdf.parse(DateTimeUtil.getNow());

// 查询数据库里的时间

Date firstTime = sdf.parse(ss);

String str = DateTimeUtil.getTime(currentTime,firstTime);

System.out.println(“时间差为:”+str);

minutes = DateTimeUtil.getTimeMinute(currentTime, firstTime);

seconds = DateTimeUtil.getTimeSecond(currentTime, firstTime);

System.out.println(“相差的分钟+”+minutes);

System.out.println(“相差的秒+”+seconds);

minute = (int)(1-minutes-1);

second = (int)(60-seconds);

if(minute < 0) {

deleteAwaitOrder();

}

} catch (ParseException e) {

e.printStackTrace();

}

order_time.setText(enrollTime);

order_id.setText(orderId);

// 根据 userId 查孩子的信息

RestClient

.builder()

.params(“userId”, ShareUtils.getUserId(getApplicationContext(),“userId”,“”))

.url(IpConfig.APP_ID+“/childInfoApp/getChildInfo”)

.success(new ISuccess() {

@Override

public void onSuccess(String response) {

Result result;

Type type = new TypeToken<Result>() {}.getType();// 解决 json 解析时出现的 bug

result = new Gson().fromJson(response, type);

Log.i(“请求数据为:”,result.toString());

dataList.clear();// 下拉刷新叠加问题,每次下拉清空数据

if(result.getStatus().equals(“200”)) {

System.out.println(“获取孩子信息成功!”);

//数据封装

for (int i = 0;i<result.getData().size();i++) {

Child child = new Child();

child.setChildId(result.getData().get(i).getChildId());

child.setChildName(result.getData().get(i).getChildName());

child.setChildSex(result.getData().get(i).getChildSex());

child.setChildGrade(result.getData().get(i).getChildGrade());

dataList.add(child);

}

initAdapter();

}else {

System.out.println(“您还没有添加孩子信息!”);

}

}

})

.failure(new IFailure() {

@Override

public void onFailure() {

}

})

.build()

.get();

// 根据 organUserId 查机构信息

organUserId = ShareUtils.getProperty(AwaitOrderActivity.this,“organUserId”,“”);

RestClient.builder()

.params(“userId”, organUserId)

.url(IpConfig.APP_ID+“/organInfoApp/findOrganByUserId”)

.success(new ISuccess() {

@Override

public void onSuccess(String response) {

Result result = new Result<>();

Type type1 = new TypeToken<Result>() {}.getType();

result = new Gson().fromJson(response, type1);

Log.i(“请求数据:”,result.toString());

// 赋值

if(result.getStatus().equals(“200”)) {

tv_organ_name.setText(result.getDataEntity().getOrganName());

tv_user_name.setText(result.getDataEntity().getUser().getFullName());

tv_tel.setText(result.getDataEntity().getUser().getTel());

tv_address.setText(result.getDataEntity().getAddress());

}else {

ToastUtils.showShort(getApplicationContext(),“请求数据失败!”);

}

}

})

.failure(new IFailure() {

@Override

public void onFailure() {

System.out.println(“根据 organUserId 查机构信息失败!”);

}

}).build().get();

// 根据 timeId 查课程时间段信息

RestClient.builder()

.params(“timeId”, timeId)

.url(IpConfig.APP_ID+“/courseApp/findByTimeId”)

.success(new ISuccess() {

@Override

public void onSuccess(String response) {

Result<List> result = new Result<>();

Type type1 = new TypeToken<Result<List>>() {}.getType();

result = new Gson().fromJson(response, type1);

Log.i(“请求数据:”,result.toString());

if(result.getStatus().equals(“200”)) {

tv_course_name.setText(result.getDataEntity().get(0).get(“course_name”).toString());

tv_category.setText(result.getDataEntity().get(0).get(“grade_name”).toString() + “、” +

result.getDataEntity().get(0).get(“subject_name”).toString());

tv_week.setText(result.getDataEntity().get(0).get(“time_week”).toString()+" ");

tv_begin_end_time.setText(result.getDataEntity().get(0).get(“time_course_begin”).toString()+ “-” +result.getDataEntity().get(0).get(“time_course_end”).toString());

tv_price1.setText( NumberFormat.getInstance().format(result.getDataEntity().get(0).get(“course_price_thirty_two”)));

tv_price2.setText(NumberFormat.getInstance().format(result.getDataEntity().get(0).get(“course_price_thirty_two”)));

tv_price3.setText( NumberFormat.getInstance().format(result.getDataEntity().get(0).get(“course_price_thirty_two”)));

thirtyTwo = result.getDataEntity().get(0).get(“course_price_thirty_two”).toString();

fortyEight = result.getDataEntity().get(0).get(“course_price_forty_eight”).toString();

sixtyFour = result.getDataEntity().get(0).get(“course_price_sixty_four”).toString();

if(result.getDataEntity().get(0).get(“course_room”).toString().isEmpty()) {

tv_course_room.setText(“暂无”);

}else {

tv_course_room.setText(result.getDataEntity().get(0).get(“course_room”).toString());

}

}

}

})

.failure(new IFailure() {

@Override

public void onFailure() {

System.out.println(“// 根据 timeId 查课程时间段信息失败!”);

}

}).build().get();

}

public void initEvent() {

radioGroup1.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {

@Override

public void onCheckedChanged(RadioGroup radioGroup, int i) {

System.out.println(i+“---------2-2222222”);

RadioButton rb = findViewById(i);

if(rb.getText().toString().equals(“32”)) {

tv_price1.setText(thirtyTwo);

tv_price2.setText(thirtyTwo);

tv_price3.setText(thirtyTwo);

courseHour = 32;

}else if(rb.getText().toString().equals(“48”)) {

tv_price1.setText(fortyEight);

tv_price2.setText(fortyEight);

tv_price3.setText(fortyEight);

courseHour = 48;

}else {

tv_price1.setText(sixtyFour);

tv_price2.setText(sixtyFour);

tv_price3.setText(sixtyFour);

courseHour = 64;

}

}

});

rl_04.setOnTouchListener(new View.OnTouchListener() {

@Override

public boolean onTouch(View view, MotionEvent motionEvent) {

switch (motionEvent.getAction()) {

case MotionEvent.ACTION_DOWN: {

break;

}

case MotionEvent.ACTION_UP: {

payType = “0”;

// 所有对勾回复默认

recover();

pay_success_icon_weixin.setVisibility(View.VISIBLE);

break;

}

case MotionEvent.ACTION_MOVE:{

rl_04.setBackgroundResource(R.color.white);

break;

}

}

return true;

}

});

rl_05.setOnTouchListener(new View.OnTouchListener() {

@Override

public boolean onTouch(View view, MotionEvent motionEvent) {

switch (motionEvent.getAction()) {

case MotionEvent.ACTION_DOWN:

break;

case MotionEvent.ACTION_UP:

payType = “1”;

// 所有对勾回复默认

recover();

pay_success_icon_zhifubao.setVisibility(View.VISIBLE);

break;

case MotionEvent.ACTION_MOVE:

rl_05.setBackgroundResource(R.color.white);

break;

}

return true;

}

});

}

public void initAdapter() {

// 创建适配器

orderChildListAdapter = new OrderChildListAdapter(AwaitOrderActivity.this,dataList);

// 设置适配器

rv_child_info.setAdapter(orderChildListAdapter);

}

@Override

public void onClick(View view) {

switch (view.getId()) {

case R.id.ll_fanHui: {

finish();

break;

}

case R.id.btn_pay: { //立即支付

// 封装对象

Order order = new Order();

order.setOrder_id(orderId);

order.setEnroll_time(enrollTime);

order.setChild_id(ShareUtils.getProperty(AwaitOrderActivity.this,“childId”,“”));

order.setPay_type(Integer.valueOf(payType));

order.setTime_id(timeId);

order.setUser_id(ShareUtils.getUserId(getApplicationContext(),“userId”,“”)); // 家长

order.setOrgan_user_id(organUserId);

order.setCourseHour(courseHour);

order.setOrderStatus(1);

Gson gson = new Gson();

String jsonCourse = gson.toJson(order);

ShareUtils.putOJson(getApplicationContext(),“jsonCourse”, jsonCourse);

// 判断支付方式

if(payType.equals(“0”)) { // 微信

System.out.println(“-----------------------微信支付中…---------------------------------”);

RestClient.builder()

.params(“orderno”,orderId)

.params(“amount”,“1”)

.params(“body”,“微信支付测试”)

.url(IpConfig.APP_ID+“/wxpay/addOrder”)

.success(new ISuccess() {

@Override

public void onSuccess(String response) {

Result<Map<String,String>> result = new Result<>();

Type type = new TypeToken<Result<Map<String,String>>>() {}.getType();

result = new Gson().fromJson(response, type);

Log.i(“请求数据:”,result.toString());

System.out.println(“----”+result+“----”);

//调起支付

PayReq request = new PayReq();

request.appId = WeiXinConstants.APP_ID;

request.partnerId = WeiXinConstants.partnerId;

request.prepayId = result.getDataEntity().get(“prepayid”);

request.packageValue = result.getDataEntity().get(“package”);

request.nonceStr = result.getDataEntity().get(“noncestr”);

request.timeStamp = result.getDataEntity().get(“timestamp”);

request.sign = result.getDataEntity().get(“sign”);

msgApi.sendReq(request);

}

})

.failure(new IFailure() {

@Override

public void onFailure() {

System.out.println(“调起微信支付时出错!”);

}

}).build().get();

}

if(payType.equals(“1”)) { // 支付宝

System.out.println(“-----------------------支付宝支付中…---------------------------------”);

RestClient.builder().url(IpConfig.APP_ID+“/aliPay/ali/pay/order/create”)

.params(“orderTittle”, tv_course_name.getText().toString()) // 标题

.params(“orderPrice”, tv_price3.getText().toString()) // 价格

.params(“orderId”, orderId) // 订单编号

.success(new ISuccess() {

@Override

public void onSuccess(String response) {

System.out.println(“—>>>”+response);

final String orderInfo = response; // 订单信息

Runnable payRunnable = new Runnable() {

@Override

public void run() {

PayTask alipay = new PayTask(AwaitOrderActivity.this);

Map <String,String> result = alipay.payV2(orderInfo,true);

Message msg = new Message();

msg.what = SDK_PAY_FLAG;

msg.obj = result;

mHandler.sendMessage(msg);

}

};

// 必须异步调用

Thread payThread = new Thread(payRunnable);

payThread.start();

}

})

.failure(new IFailure() {

@Override

public void onFailure() {

System.out.println(“报名时出错!”);

}

}).build().get();

}

break;

}

}

}

public void recover() {

pay_success_icon_weixin.setVisibility(View.INVISIBLE);

pay_success_icon_zhifubao.setVisibility(View.INVISIBLE);

}

}

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout

xmlns:android=“http://schemas.android.com/apk/res/android”

xmlns:tools=“http://schemas.android.com/tools”

android:layout_width=“match_parent”

android:layout_height=“match_parent”

android:background=“@drawable/main_background”

tools:context=“.activity.OrderInfoActivity”>

<RelativeLayout

android:id=“@+id/rl_01”

android:layout_width=“match_parent”

android:layout_height=“40dp”

android:background=“@color/app_color”>

<LinearLayout

android:id=“@+id/ll_fanHui”

android:layout_width=“wrap_content”

android:layout_height=“match_parent”

android:gravity=“center”>

<ImageView

android:layout_width=“16dp”

android:layout_height=“16dp”

android:layout_alignParentLeft=“true”

android:layout_marginStart=“15dp”

android:layout_marginEnd=“10dp”

android:layout_centerVertical=“true”

android:background=“@mipmap/icon_left_arrow”

/>

<TextView

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”

android:text=“待支付”

android:textSize=“@dimen/textSize4”

android:textColor=“#FFF”

android:layout_centerHorizontal=“true”

android:layout_centerVertical=“true”/>

<ScrollView

android:layout_width=“match_parent”

android:layout_height=“match_parent”

android:layout_below=“@+id/rl_01”>

<RelativeLayout

android:layout_width=“match_parent”

android:layout_height=“match_parent” >

<RelativeLayout

android:id=“@+id/rl_attention”

android:background=“@color/white”

android:gravity=“center”

android:layout_width=“match_parent”

android:layout_height=“wrap_content”>

<TextView

android:id=“@+id/tv_11”

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”

android:layout_toLeftOf=“@+id/hours_tv”

android:text=“请在”

android:layout_marginBottom=“10dp”

android:layout_marginTop=“10dp”>

<TextView

android:id=“@+id/hours_tv”

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”

android:layout_centerVertical=“true”

android:layout_toLeftOf=“@+id/colon1”

android:textColor=“@color/red”

android:gravity=“center”

android:text=“00”/>

<TextView

android:id=“@+id/colon1”

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”

android:layout_centerVertical=“true”

android:layout_marginLeft=“3.0dip”

android:layout_toLeftOf=“@+id/minutes_tv”

android:text=“:”

android:textColor=“@color/red”

android:textStyle=“bold” />

<TextView

android:id=“@+id/minutes_tv”

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”

android:layout_centerVertical=“true”

android:text=“00”

android:layout_toLeftOf=“@+id/colon2”

android:textColor=“@color/red”

android:gravity=“center”/>

<TextView

android:id=“@+id/colon2”

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”

android:layout_centerVertical=“true”

android:layout_marginLeft=“3.0dip”

android:layout_marginRight=“3.0dip”

android:layout_toLeftOf=“@+id/seconds_tv”

android:text=“:”

android:textColor=“@color/red”

android:textStyle=“bold” />

<TextView

android:id=“@+id/seconds_tv”

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”

android:layout_centerVertical=“true”

android:gravity=“center”

android:text=“00”

android:textColor=“@color/red”/>

<TextView

android:layout_toRightOf=“@+id/seconds_tv”

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”

android:text=“内支付,超时订单将自动取消”

android:layout_marginBottom=“10dp”

android:layout_marginTop=“10dp”>

<RelativeLayout

android:id=“@+id/rl_02”

android:layout_marginTop=“10dp”

android:layout_below=“@+id/rl_attention”

android:layout_width=“match_parent”

android:layout_height=“wrap_content”

android:paddingBottom=“10dp”

android:background=“@color/white”>

<RelativeLayout

android:id=“@+id/rl_organ_info”

android:layout_width=“match_parent”

android:layout_height=“50dp” >

<LinearLayout

android:id=“@+id/line1”

android:layout_width=“3dp”

android:background=“@color/red”

android:orientation=“vertical”

android:layout_marginTop=“14dp”

android:layout_marginStart=“8dp”

android:layout_centerVertical=“true”

android:layout_marginBottom=“20dp”

android:layout_height=“match_parent”>

<TextView

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”

android:layout_toRightOf=“@+id/line1”

android:layout_centerVertical=“true”

android:layout_marginStart=“10dp”

android:textSize=“@dimen/textSize5”

android:text=“商家信息”/>

<RelativeLayout

android:layout_width=“match_parent”

android:layout_height=“wrap_content”

android:layout_below=“@+id/rl_organ_info”

android:layout_marginStart=“20dp”

android:layout_marginEnd=“20dp”>

<LinearLayout

android:id=“@+id/ll_organ_name”

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”>

<TextView

android:id=“@+id/tv_organ_name”

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”

android:text=“机构名称”

android:textSize=“@dimen/textSize8”

android:textStyle=“bold”

android:layout_gravity=“center_vertical”

<LinearLayout

android:id=“@+id/ll_user_name”

android:layout_below=“@+id/ll_organ_name”

android:layout_width=“wrap_content”

android:layout_marginTop=“5dp”

android:layout_height=“wrap_content”>

<TextView

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”

android:text=“负责人:”

android:layout_gravity=“center_vertical”

<TextView

android:id=“@+id/tv_user_name”

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”

android:layout_gravity=“center_vertical”

android:layout_marginStart=“10dp”>

<LinearLayout

android:id=“@+id/ll_tel”

android:layout_below=“@+id/ll_user_name”

android:layout_width=“wrap_content”

android:layout_marginTop=“5dp”

android:layout_height=“wrap_content”>

<TextView

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”

android:text=“电话:”

android:layout_gravity=“center_vertical”>

<TextView

android:id=“@+id/tv_tel”

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”

android:layout_gravity=“center_vertical”

android:layout_marginStart=“10dp”>

<LinearLayout

android:id=“@+id/ll_address”

android:layout_below=“@+id/ll_tel”

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”

android:layout_marginTop=“5dp”>

<TextView

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”

android:text=“地址:”

android:layout_gravity=“center_vertical”

<TextView

android:id=“@+id/tv_address”

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”

android:layout_gravity=“center_vertical”

android:layout_marginStart=“10dp”>

<RelativeLayout

android:id=“@+id/rl_03”

android:layout_marginTop=“10dp”

android:layout_width=“match_parent”

android:layout_height=“wrap_content”

android:paddingBottom=“10dp”

android:layout_below=“@+id/rl_02”

android:background=“@color/white”>

<RelativeLayout

android:id=“@+id/rl_course_info_head”

android:layout_width=“match_parent”

android:layout_height=“50dp” >

<LinearLayout

android:id=“@+id/line”

android:layout_width=“3dp”

android:background=“@color/red”

android:orientation=“vertical”

android:layout_marginTop=“14dp”

android:layout_marginStart=“8dp”

android:layout_centerVertical=“true”

android:layout_marginBottom=“20dp”

android:layout_height=“match_parent”>

<TextView

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”

android:layout_toRightOf=“@+id/line”

android:layout_centerVertical=“true”

android:layout_marginStart=“10dp”

android:textSize=“@dimen/textSize5”

android:text=“课程信息”/>

<RelativeLayout

android:id=“@+id/rl_course_info_concept”

android:layout_width=“match_parent”

android:layout_height=“wrap_content”

android:layout_below=“@+id/rl_course_info_head”>

<TextView

android:id=“@+id/tv_course_name”

android:layout_width=“match_parent”

android:layout_height=“wrap_content”

android:layout_marginStart=“20dp”

android:textSize=“@dimen/textSize8”

android:textStyle=“bold”

android:text=“课程名称”>

<LinearLayout

android:id=“@+id/ll_category”

android:layout_below=“@+id/tv_course_name”

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”

android:layout_marginStart=“20dp”

android:layout_marginTop=“5dp”

android:orientation=“horizontal”>

<TextView

android:id=“@+id/tv_category1”

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”

android:text=“类别:”>

<TextView

android:id=“@+id/tv_category”

android:layout_width=“wrap_content”

android:text=“年级、科目”

android:layout_height=“wrap_content”>

<LinearLayout

android:id=“@+id/ll_time”

android:layout_below=“@+id/ll_category”

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”

android:layout_marginTop=“5dp”

android:orientation=“horizontal”>

<TextView

android:id=“@+id/tv_week1”

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”

android:layout_marginStart=“20dp”

android:text=“上课时段:”>

<TextView

android:id=“@+id/tv_week”

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”

android:text=“星期几:”>

<TextView

android:id=“@+id/tv_begin_end_time”

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”

android:text=“起止时间:”>

<LinearLayout

android:id=“@+id/ll_room”

android:layout_width=“wrap_content”

android:layout_below=“@+id/ll_time”

android:layout_height=“wrap_content”

android:layout_marginTop=“5dp”

android:orientation=“horizontal”>

<TextView

android:id=“@+id/tv_course_room1”

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”

android:layout_marginStart=“20dp”

android:text=“教室:”>

<TextView

android:id=“@+id/tv_course_room”

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”

android:text=“教室名称”>

<LinearLayout

android:layout_width=“wrap_content”

android:layout_below=“@+id/ll_room”

android:layout_height=“wrap_content”

android:layout_marginTop=“5dp”

android:orientation=“horizontal”>

<TextView

android:id=“@+id/tv_course_hour”

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”

android:layout_marginStart=“20dp”

android:layout_gravity=“center_vertical”

android:text=“课时数:”>

<RadioGroup

android:id=“@+id/radioGroup1”

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”

android:orientation=“horizontal” >

<RadioButton

android:id=“@+id/radio0”

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”

android:checked=“true”

android:text=“32” />

<RadioButton

android:id=“@+id/radio1”

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”

android:text=“48” />

<RadioButton

android:id=“@+id/radio2”

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”

android:text=“64” />

<LinearLayout

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”

android:orientation=“vertical”

android:layout_alignParentRight=“true”

android:layout_centerVertical=“true”

android:layout_marginEnd=“20dp” >

<LinearLayout

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”>

<TextView

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”

android:textSize=“@dimen/textSize”

android:text=“¥” >

<TextView

android:id=“@+id/tv_price1”

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”

android:text=“价格” >

<TextView

android:layout_width=“match_parent”

android:layout_height=“wrap_content”

android:gravity=“right”

android:textColor=“@color/grey3”

android:textSize=“@dimen/textSize2”

android:text=“x1”>

总结

Android架构学习进阶是一条漫长而艰苦的道路,不能靠一时激情,更不是熬几天几夜就能学好的,必须养成平时努力学习的习惯。所以:贵在坚持!

上面分享的字节跳动公司2020年的面试真题解析大全,笔者还把一线互联网企业主流面试技术要点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节。

就先写到这,码字不易,写的很片面不好之处敬请指出,如果觉得有参考价值的朋友也可以关注一下我

①「Android面试真题解析大全」PDF完整高清版+②「Android面试知识体系」学习思维导图压缩包阅读下载,最后觉得有帮助、有需要的朋友可以点个赞

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

LinearLayout>

<LinearLayout

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”

android:orientation=“vertical”

android:layout_alignParentRight=“true”

android:layout_centerVertical=“true”

android:layout_marginEnd=“20dp” >

<LinearLayout

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”>

<TextView

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”

android:textSize=“@dimen/textSize”

android:text=“¥” >

<TextView

android:id=“@+id/tv_price1”

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”

android:text=“价格” >

<TextView

android:layout_width=“match_parent”

android:layout_height=“wrap_content”

android:gravity=“right”

android:textColor=“@color/grey3”

android:textSize=“@dimen/textSize2”

android:text=“x1”>

总结

Android架构学习进阶是一条漫长而艰苦的道路,不能靠一时激情,更不是熬几天几夜就能学好的,必须养成平时努力学习的习惯。所以:贵在坚持!

上面分享的字节跳动公司2020年的面试真题解析大全,笔者还把一线互联网企业主流面试技术要点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节。

就先写到这,码字不易,写的很片面不好之处敬请指出,如果觉得有参考价值的朋友也可以关注一下我

①「Android面试真题解析大全」PDF完整高清版+②「Android面试知识体系」学习思维导图压缩包阅读下载,最后觉得有帮助、有需要的朋友可以点个赞

[外链图片转存中…(img-eVq0P8Qu-1714121266054)]

[外链图片转存中…(img-FOW9aE92-1714121266054)]

[外链图片转存中…(img-0fXya26P-1714121266055)]

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 28
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值