Android最全多页面实现-个人中心,安卓开发面试

最后

针对于上面的问题,我总结出了互联网公司Android程序员面试涉及到的绝大部分面试题及答案,并整理做成了文档,以及系统的进阶学习视频资料。
(包括Java在Android开发中应用、APP框架知识体系、高级UI、全方位性能调优,NDK开发,音视频技术,人工智能技术,跨平台技术等技术资料),希望能帮助到你面试前的复习,且找到一个好的工作,也节省大家在网上搜索资料的时间来学习。

image

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

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

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

username: ‘xiaoyuer’,

imgUrl: “/images/avatar.jpg”

},

changeAvatar: function() {

wx.chooseImage({

count: 1,

sizeType: [‘original’, ‘compressed’],

sourceType: [‘album’, ‘camera’], success: res => {

// tempFilePath可以作为img标签的src属性显示图片

var tempFilePaths = res.tempFilePaths

this.setData({

imgUrl: tempFilePaths

})

}

})

},

jump: function(e) {

// 跳转到“个人资料修改页”

wx.navigateTo({

// 为了避免用户名中的特殊字符破坏字符串结构,使用encodeURIComponent()编码

url: ‘/pages/modify/modify?username=’ + encodeURIComponent(this.data.username) +

‘&gender=’ + encodeURIComponent(this.data.gender)

})

}

})

4.2 detail.json 代码

{

“navigationBarTitleText”: “个人资料详情页”

}

4.3 detail.wxml代码

头像 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 昵称 {{username}} 性别 {{gender}} 修改资料

4.4 detail.wxss代码

/* pages/detail/detail.wxss */

page {

background-color: #f4f4f4;

font-size: 32rpx;

}

.info > view {

background-color: #fff;

display: flex;

flex-direction: row;

align-items: center;

justify-content: center;

padding: 20rpx;

line-height: 80rpx;

border-bottom: 1px solid #efefef;

height: 80rpx;

}

.info > view:last-child {

border: none;

}

.fl {

flex: 1;

}

.rl {

flex: 1;

text-align: right;

}

.info image {

width: 50rpx;

height: 50rpx;

margin-top: 20rpx;

}

.info .arrow {

width: 30rpx;

height: 32rpx;

float: right;

margin: 26rpx 0 0 15rpx;

}

  1. 主页/pages/modify/ modify 实现代码

5.1 modify.js代码

// pages/modify/modify.js

Page({

data: {

username: ‘’,

gender: ‘男’

},

onLoad: function(options) {

this.setData({

// 收到数据后使用decodeURIComponent()解码

username: decodeURIComponent(options.username),

gender: decodeURIComponent(options.gender)

})

},

formSubmit: function(e) {

// 表单返回的所有数据

var formData = e.detail.value

// 获取上一个页面的对象

var pages = getCurrentPages()

var prevPage = pages[pages.length - 2]

// 调用上一个页面的 setData() 方法,把数据存到上一个页面中去

prevPage.setData({

username: formData.username,

gender: formData.gender

})

// 返回到上一个页面

wx.navigateBack()

}

})

5.2 modify.json 代码

5.3 modify.wxml代码

姓名: 性别: 男 女 保存

5.4 modify.wxss代码

6. 主页/pages/order/ order实现代码


6.1 order .js代码

// pages/order/order.js

Page({

data: {

no: null, // 运单号

company: [‘sf’, ‘sto’, ‘yt’, ‘yd’, ‘tt’], // 传递给快递查询接口的值

com: [‘顺丰’, ‘申通’, ‘圆通’, ‘韵达’, ‘天天’], // 用于显示在页面中的快递名称

index: 0, // 用户选择的快递公司的数组索引

expressInfo: null, // 查询到的物流信息

},

search: function() {

wx.showLoading({

title: ‘加载中’,

})

// 在 https://www.juhe.cn/docs/api/id/43 注册后可申请数据,将获得的接口填入url

// key值在个人中心-我的数据,可获取AppKey

var key = ‘’

wx.request({

url: ‘http://v.juhe.cn/exp/index?key=’ + key + ‘&com=’ +

this.data.company[this.data.index] + ‘&no=’ + this.data.no, method: ‘GET’,

header: {

‘content-type’: ‘application/json’ // 默认值

},

success: res => {

console.log(res.data);

this.setData({

expressInfo: res.data

})

wx.hideLoading()

}

})

},

// 获取运单号的值

noInput: function(e) {

this.setData({

no: e.detail.value

})

},

// 获取快递公司的索引

companyInput: function(e) {

this.setData({

index: e.detail.value

})

}

})

6.2 order .json 代码

{

“navigationBarTitleText”: “物流信息”

}

6.3 order.wxml代码

欢迎进入快递查询系统

请选择快递公司:

{{com[index]}}

运单号:

查询

【{{item.datetime}}】 {{item.remark}}

6.4 order.wxss代码

/* pages/order/order.wxss */

.container {

padding: 20rpx;

}

.container > .title {

text-align: center;

}

button {

width: 300rpx;

height: 80rpx;

line-height: 80rpx;

margin: 30rpx auto;

}

.section {

width: 100%;

box-sizing: border-box;

margin-top: 80rpx;

overflow: hidden;

}

.section > .title {

width: 20%;

float: left;

font-size: 28rpx;

text-align: right;

line-height: 42rpx;

}

.section > .input {

border: 1px solid gainsboro; width: 70%;

padding: 5rpx 10rpx;

float: right;

font-size: 32rpx;

}

.orderlist {

height: 300px;

}

.orderlist view {

border-bottom: 1px solid #efefef;

font-size: 32rpx;

padding: 10rpx 0;

}

.orderlist text {

color: red;

font-size: 28rpx;

}

7. 主页/pages/address/ address实现代码


7.1 address.js代码

// pages/address/address.js

Page({

data: {

addressInfo: null

},

chooseAddress() {

wx.chooseAddress({

// 成功之后,把所有数据存放在addressInfo里,在wxml中调用

success: res => {

this.setData({

addressInfo: res

})

},

// 接口返回失败信息,打印在控制台中

fail: err => {

console.log(err)

}

})

}

})

7.2 address.json 代码

7.3 address.wxml代码

收货人姓名 {{ addressInfo.userName }} 邮编 {{ addressInfo.postalCode }} 地区 {{ addressInfo.provinceName }} {{ addressInfo.cityName }} {{ addressInfo.countyName }} 收货地址 {{ addressInfo.detailInfo }} 国家码 {{ addressInfo.nationalCode }} 手机号码 {{ addressInfo.telNumber }} 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 获取收货地址 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

7.4 address.wxss代码

page {

background-color: #f6f6f6;

font-family: “微软雅黑”;

font-size: 30rpx;

color: #353535; }

.list {

font-size: 36rpx;

}

.list > view {

background-color: #fff;

padding: 20rpx;

border-bottom: 1rpx solid #e0e0e0;

display: flex;

}

.list .head {

width: 210rpx;

}

.list .body {

flex: 1;

}

.add {

width: 100%;

background-color: #fff;

position: absolute;

bottom: 0;

padding: 15rpx 15rpx 30rpx 40rpx;

border-top: 1rpx solid #e0e0e0;

}

.add > image {

width: 50rpx;

margin-top: 15rpx;

margin-right: 20rpx;

}

.add > .left {

float: left;

}

.add > .right {

width: 25rpx;

float: right;

margin-right: 60rpx; padding-top: 15rpx;

color: #e0e0e0;

}

.add > .text {

float: left;

margin-top: 20rpx;

}

8. 完善功能选项


**8.1 修改客服联系电话为:400-400-955-911

8.2 新增物流快递选项:如中通、德邦等

8.3 修改首页为自己的信息(个人简介)

8.4 新增个人资料详细页内容(比如个人爱好、性格特征等)

8.5 收货地址的提取**

images文件夹包含的图片

在这里插入图片描述me.png

在这里插入图片描述me_select.png

在这里插入图片描述right.png

在这里插入图片描述iconthree.png

最后我想说

为什么很多程序员做不了架构师?
1、良好健康的职业规划很重要,但大多数人都忽略了
2、学习的习惯很重要,持之以恒才是正解。
3、编程思维没能提升一个台阶,局限在了编码,业务,没考虑过选型、扩展
4、身边没有好的架构师引导、培养。所处的圈子对程序员的成长影响巨大。

金九银十面试季,跳槽季,整理面试题已经成了我多年的习惯!在这里我和身边一些朋友特意整理了一份快速进阶为Android高级工程师的系统且全面的学习资料。涵盖了Android初级——Android高级架构师进阶必备的一些学习技能。

附上:我们之前因为秋招收集的二十套一二线互联网公司Android面试真题(含BAT、小米、华为、美团、滴滴)和我自己整理Android复习笔记(包含Android基础知识点、Android扩展知识点、Android源码解析、设计模式汇总、Gradle知识点、常见算法题汇总。)

里面包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中…

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

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

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

么很多程序员做不了架构师?**
1、良好健康的职业规划很重要,但大多数人都忽略了
2、学习的习惯很重要,持之以恒才是正解。
3、编程思维没能提升一个台阶,局限在了编码,业务,没考虑过选型、扩展
4、身边没有好的架构师引导、培养。所处的圈子对程序员的成长影响巨大。

金九银十面试季,跳槽季,整理面试题已经成了我多年的习惯!在这里我和身边一些朋友特意整理了一份快速进阶为Android高级工程师的系统且全面的学习资料。涵盖了Android初级——Android高级架构师进阶必备的一些学习技能。

附上:我们之前因为秋招收集的二十套一二线互联网公司Android面试真题(含BAT、小米、华为、美团、滴滴)和我自己整理Android复习笔记(包含Android基础知识点、Android扩展知识点、Android源码解析、设计模式汇总、Gradle知识点、常见算法题汇总。)

[外链图片转存中…(img-sFQUgAVf-1715241145118)]

里面包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中…

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

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

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

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
四大组件是指Android应用开发中的四个核心组件,包括Activity、Service、BroadcastReceiver和ContentProvider。 Activity是Android应用中的页面承载组件,用于展示用户界面和处理用户交互。它是每个页面的承载,一个Activity就是一个页面。Fragment是依赖于Activity的,它的显示与Activity的生命周期密切相关。 Service是一种在后台运行的组件,用于执行长时间运行的任务或处理远程请求。它没有用户界面,可以在后台执行任务,即使用户切换到其他应用程序,服务也可以继续工作。 BroadcastReceiver是一种用于接收和响应广播消息的组件。它可以接收系统广播或自定义广播,然后根据接收到的广播消息执行相应的操作。 ContentProvider是一种用于管理应用程序中各个组件之间共享数据的组件。它提供了一种统一的接口,允许应用程序之间共享数据,包括访问和修改数据的能力。 在面试中,可能会问到Activity的四种启动模式,它们分别是: 1. Standard(标准模式):默认启动模式,每次启动都会创建一个新的实例。 2. SingleTop(单顶模式):如果Activity位于栈顶,则不会创建新的实例,而是重用栈顶的实例。 3. SingleTask(单任务模式):如果Activity在返回栈中已经存在,则将其上面的Activity全部出栈,使得该Activity成为栈顶,如果Activity不存在,则创建新的实例。 4. SingleInstance(单实例模式):该Activity独占一个返回栈,其他应用程序无法共享该实例,它会在一个新的任务中启动。 在返回栈中,Activity的顺序是栈底到栈顶,栈顶的Activity即为当前显示的Activity。根据启动模式的不同,返回栈中的Activity可能会发生变化。例如,使用SingleTask模式启动一个Activity时,如果该Activity在返回栈中已经存在,则会将其上面的所有Activity出栈,使得该Activity成为栈顶。 至于Fragment,它有11个生命周期方法,包括onAttach()、onCreate()、onCreateView()、onActivityCreated()、onStart()、onResume()、onPause()、onStop()、onDestroyView()、onDestroy()和onDetach()。这些方法可以用于管理Fragment的生命周期,如创建、销毁、显示和隐藏等操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Android面试题(四大组件篇)](https://blog.csdn.net/augfun/article/details/105237121)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值