最后为了帮助大家深刻理解Android相关知识点的原理以及面试相关知识,这里放上相关的我搜集整理的24套腾讯、字节跳动、阿里、百度2020-2021面试真题解析,我把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包知识脉络 + 诸多细节。
还有 高级架构技术进阶脑图、Android开发面试专题资料 帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习。
网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
mItemZeroValueEt.setText(formDetail.getuValue());
mItemZeroValueEt.setTag(formDetail.getTableDetailID());
mItemZeroFieldTv.setText(formDetail.getCaption());
mTypeZeroView.setTag(mType);
linearLayout.addView(mTypeZeroView);
} else if (mType == ViewTypeUtil.item_view_type_one) {
mTypeOneView = LayoutInflater.from(this).inflate(R.layout.item_type_one, null);
mItemOneFieldTv = (TextView) mTypeOneView.findViewById(R.id.item_one_field_tv);
mItemOneValueEt = (EditText) mTypeOneView.findViewById(R.id.item_one_value_et);
if (mIntentFrom == FLAG_SHOW) {
mItemOneValueEt.setEnabled(false);
}
mItemOneValueEt.setText(formDetail.getuValue());
mItemOneValueEt.setTag(formDetail.getTableDetailID());
mItemOneFieldTv.setText(formDetail.getCaption());
mTypeOneView.setTag(mType);
linearLayout.addView(mTypeOneView);
} else if (mType == ViewTypeUtil.item_view_type_two) {
mTypeTwoView = LayoutInflater.from(this).inflate(R.layout.item_type_two, null);
mItemTwoValueEt = (EditText) mTypeTwoView.findViewById(R.id.content_et);
mItemTwoValueEt.setTypeface(Constants.fontFace);
mItemTwoFieldTv = (TextView) mTypeTwoView.findViewById(R.id.item_two_field_tv);
if (mIntentFrom == FLAG_SHOW) {
mItemTwoValueEt.setEnabled(false);
} else {
mTypeTwoView.findViewById(R.id.content_iv).setOnClickListener(this);
mTypeTwoView.findViewById(R.id.voice_iv).setOnClickListener(this);
mTypeTwoView.findViewById(R.id.special_iv).setOnClickListener(this);
}
mItemTwoValueEt.setText(formDetail.getuValue());
mItemTwoFieldTv.setText(formDetail.getCaption());
mItemTwoValueEt.setTag(formDetail.getTableDetailID());
mTypeTwoView.findViewById(R.id.voice_iv).setTag(formDetail.getTableDetailID());
mTypeTwoView.findViewById(R.id.special_iv).setTag(formDetail.getTableDetailID());
mTypeTwoView.findViewById(R.id.content_iv).setTag(formDetail.getTableDetailID());
mTypeTwoView.setTag(mType);
linearLayout.addView(mTypeTwoView);
} else if (mType == ViewTypeUtil.item_view_type_three) {
mTypeThreeView = LayoutInflater.from(this).inflate(R.layout.item_type_three, null);
mDateKeyTv = (TextView) mTypeThreeView.findViewById(R.id.tv_test_date_key);
mDateValueEt = (EditText) mTypeThreeView.findViewById(R.id.et_test_date_value);
mDateKeyTv.setText(formDetail.getCaption());
if (mIntentFrom == FLAG_SHOW) {
mDateValueEt.setEnabled(false);
} else {
mDateValueEt.setOnClickListener(this);
}
if (!TextUtils.isEmpty(formDetail.getuValue())) {
mDateValueEt.setText(formDetail.getuValue());
} else {
mDateValueEt.setText(TimeUtil.getCurDateStr().substring(0, 12));
}
mDateValueEt.setTag(formDetail.getTableDetailID());
mTypeThreeView.setTag(mType);
linearLayout.addView(mTypeThreeView);
} else if (mType == ViewTypeUtil.item_view_type_four) {
mTypeFourView = LayoutInflater.from(context).inflate(R.layout.item_type_four, null);
mNumEt = (EditText) mTypeFourView.findViewById(R.id.et_num);
mItemFourFieldTv = (TextView) mTypeFourView.findViewById(R.id.item_four_field_tv);
mNumEt.setText(formDetail.getuValue());
mNumEt.setTag(formDetail.getTableDetailID());
mItemFourFieldTv.setText(formDetail.getCaption());
if (mIntentFrom == FLAG_SHOW) {
mNumEt.setEnabled(false);
}
mTypeFourView.setTag(mType);
linearLayout.addView(mTypeFourView);
} else if (mType == ViewTypeUtil.item_view_type_five) {
mTypeFiveView = LayoutInflater.from(this).inflate(R.layout.item_type_five, null);
mSelectKeyTv = (TextView) mTypeFiveView.findViewById(R.id.et_select_key);
mSelectValueEt = (EditText) mTypeFiveView.findViewById(R.id.et_select_value);
mSelectValueEt.setText(formDetail.getuValue());
if (mIntentFrom == FLAG_SHOW) {
mSelectValueEt.setEnabled(false);
} else {
mSelectValueEt.setOnClickListener(this);
}
mSelectKeyTv.setText(formDetail.getCaption());
mSelectValueEt.setTag(R.id.select_view_position, i);
mSelectValueEt.setTag(R.id.select_view_detial_id, formDetail.getTableDetailID());
mTypeFiveView.setTag(mType);
linearLayout.addView(mTypeFiveView);
} else if (mType == ViewTypeUtil.item_view_type_six) {
} else if (mType == ViewTypeUtil.item_view_type_seven) {// 部位栏
mTypeSevenView = LayoutInflater.from(this).inflate(R.layout.item_type_seven, null);
mPartSelectKeyTv = (TextView) mTypeSevenView.findViewById(R.id.tv_select_part_key);
mPartSelectValueEt = (EditText) mTypeSevenView.findViewById(R.id.et_select_part_value);
mPartSelectKeyTv.setText(formDetail.getCaption());
mPartSelectValueEt.setText(formDetail.getuValue());
if (mIntentFrom == FLAG_SHOW) {
mPartSelectValueEt.setEnabled(false);
} else {
mPartSelectValueEt.setOnClickListener(this);
}
mPartSelectValueEt.setTag(formDetail.getTableDetailID());
mTypeSevenView.setTag(mType);
linearLayout.addView(mTypeSevenView);
} else if (mType == ViewTypeUtil.item_view_type_eight) {// 单选框
mTypeEightView = LayoutInflater.from(this).inflate(R.layout.item_type_eight, null);
mTypeEightKeyTv = (TextView) mTypeEightView.findViewById(R.id.tv_type_eight_key);
rgTypeEight = (RadioGroup) mTypeEightView.findViewById(R.id.rb_type_eight);
mTypeEightKeyTv.setText(formDetail.getCaption());
List dicBeans = formDetail.getDicBeanList();
if (dicBeans == null) {
return;
}
for (int j = 0; j < dicBeans.size(); j++) {
RadioButton radioButton = new RadioButton(context);
LayoutParams params = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
radioButton.setText(dicBeans.get(j).getDicName());
radioButton.setTag(formDetail.getTableDetailID() + “,” + dicBeans.get(j).getDicID());
radioButton.setId(j);
rgTypeEight.addView(radioButton, params);
if (mIntentFrom == FLAG_SHOW) {// 查看
radioButton.setEnabled(false);
if ((dicBeans.get(j).getDicID() + “”).equals(formDetail.getuValue())) {
rgTypeEight.check(j);
}
} else if (mIntentFrom == FLAG_UPDATE) {// 修改
radioButton.setEnabled(true);
if ((dicBeans.get(j).getDicID() + “”).equals(formDetail.getuValue())) {
rgTypeEight.check(j);
}
} else {// 添加
rgTypeEight.check(0);
radioButton.setEnabled(true);
}
}
mTypeEightView.setTag(mType);
linearLayout.addView(mTypeEightView);
} else if (mType == ViewTypeUtil.item_view_type_nine) {// 多选框
mTypeNineView = LayoutInflater.from(this).inflate(R.layout.item_type_nine, null);
mTypeNineKeyTv = (TextView) mTypeNineView.findViewById(R.id.tv_type_nine_key);// 没有用到
cbxTypeNine = (CheckBox) mTypeNineView.findViewById(R.id.cbx_type_nine);
cbxTypeNine.setText(formDetail.getCaption());
cbxTypeNine.setTag(formDetail.getTableDetailID() + “,” + formDetail.getDicID());
cbxTypeNine.setOnClickListener(this);
mTypeNineView.setTag(mType);
linearLayout.addView(mTypeNineView);
} else if (mType == ViewTypeUtil.item_view_type_ten) {// 列表
final String detailId = formDetail.getTableDetailID();
mTypeTenView = LayoutInflater.from(context).inflate(R.layout.item_type_ten, null);
mTypeTenKeyTv = (TextView) mTypeTenView.findViewById(R.id.tv_type_ten_key);
mTypeTenKeyTv.setText(formDetail.getCaption());
mTypeTenLinearLayout = (LinearLayout) mTypeTenView.findViewById(R.id.ly_type_ten);
mTypeTenLinearLayout.setTag(formDetail.getTableDetailID());
mTypeTenView.setTag(mType);
linearLayout.addView(mTypeTenView);
new AsyncTask<Void, Void, Void>() {
@Override
protected Void doInBackground(Void… params) {
if (mIntentFrom == FLAG_SHOW || mIntentFrom == FLAG_UPDATE) {// 查看,修改
mFormDetailMap = GdjtUserDataDBOperation.getInstance().getChildListDetailValueData(mUTableID, formDetail.getTableDetailID());
} else {// 添加
mFormDetailChildList = GdjtFormDBOperation.getInstance().getChildListDetailData(formDetail.getTableDetailID());
}
return null;
}
@Override
protected void onPostExecute(Void result) {
if (mIntentFrom == FLAG_SHOW || mIntentFrom == FLAG_UPDATE) {
mTypeTenView.findViewById(R.id.iv_type_ten_add).setVisibility(View.GONE);
mTypeTenLinearLayout.setWeightSum(3.0f);
ShowChildView();
} else {
AddListChildView();
mTypeTenLinearLayout.setWeightSum(2.5f);
mTypeTenView.findViewById(R.id.iv_type_ten_add).setVisibility(View.VISIBLE);
mTypeTenView.findViewById(R.id.iv_type_ten_add).setOnClickListener(CommonFormViewActivity.this);
}
}
}.execute();
} else if (mType == ViewTypeUtil.item_view_type_eleven) {// 图纸标准
mTypeElevenView = LayoutInflater.from(this).inflate(R.layout.item_type_eleven, null);
mTypeElevenKeyTv = (TextView) mTypeElevenView.findViewById(R.id.tv_type_eleven_key);
mDrawingNameTv = (TextView) mTypeElevenView.findViewById(R.id.item_eleven_value_et);
mDrawingNameTv.setOnClickListener(this);
mDrawingNameTv.setTag(formDetail.getTableDetailID());
if (!TextUtils.isEmpty(mDrawingPath)) {
mDrawingNameTv.setText(mDrawingPath.subSequence(mDrawingPath.lastIndexOf(“/”) + 1, mDrawingPath.length()));
}
mTypeElevenView.findViewById(R.id.item_eleven_value_img_photo).setOnClickListener(this);
mTypeElevenView.findViewById(R.id.item_eleven_value_img_folder).setOnClickListener(this);
mTypeElevenKeyTv.setText(formDetail.getCaption());
mTypeElevenView.setTag(mType);
linearLayout.addView(mTypeElevenView);
} else if (mType == ViewTypeUtil.item_view_type_twelve) {// 图片
mTypeTwelveView = LayoutInflater.from(this).inflate(R.layout.item_type_twelve, null);
mTypeTwelveKeyTv = (TextView) mTypeTwelveView.findViewById(R.id.tv_type_twelve_key);
mTypeTwelveValueTv = (TextView) mTypeTwelveView.findViewById(R.id.item_twelve_value_path);
mTypeTwelveTakePhoto = mTypeTwelveView.findViewById(R.id.item_twelve_value_img_photo);
mTypeTwelveSelectPhoto = mTypeTwelveView.findViewById(R.id.item_twelve_value_img_folder);
if (mIntentFrom == FLAG_SHOW) {
mTypeTwelveTakePhoto.setEnabled(false);
mTypeTwelveSelectPhoto.setEnabled(false);
} else {
mTypeTwelveTakePhoto.setOnClickListener(this);
mTypeTwelveSelectPhoto.setOnClickListener(this);
}
mTypeTwelveValueTv.setOnClickListener(this);
mPhotoPath = formDetail.getuValue();
mTypeTwelveKeyTv.setText(formDetail.getCaption());
mTypeTwelveValueTv.setText(mPhotoPath.substring(mPhotoPath.lastIndexOf(“/”) + 1));
mTypeTwelveValueTv.setTag(formDetail.getTableDetailID());
mTypeTwelveTakePhoto.setTag(formDetail.getTableDetailID());
mTypeTwelveSelectPhoto.setTag(formDetail.getTableDetailID());
mTypeTwelveView.setTag(mType);
linearLayout.addView(mTypeTwelveView);
} else if (mType == ViewTypeUtil.item_view_type_thirteen) {// 组
final String detailId = formDetail.getTableDetailID();
mTypeThirteenView = LayoutInflater.from(context).inflate(R.layout.item_type_thirteen, null);
mTypeThirteenKeyTv = (TextView) mTypeThirteenView.findViewById(R.id.tv_type_thirteen_key);
mTypeThirteenKeyTv.setText(formDetail.getCaption());
mTypeThirteenLinearLayout = (LinearLayout) mTypeThirteenView.findViewById(R.id.ly_type_thirteen);
mTypeThirteenLinearLayout.setTag(detailId);
mTypeThirteenView.setTag(mType);
linearLayout.addView(mTypeThirteenView);
new AsyncTask<Void, Void, Void>() {
@Override
protected Void doInBackground(Void… params) {
if (mIntentFrom == FLAG_SHOW || mIntentFrom == FLAG_UPDATE) {// 查看,修改
mFormDetailMap = GdjtUserDataDBOperation.getInstance().getChildListDetailValueData(mUTableID, detailId);
} else {// 添加
mFormZuDetailChildList = GdjtFormDBOperation.getInstance().getChildListDetailData(detailId);
}
return null;
}
@Override
protected void onPostExecute(Void result) {
if (mIntentFrom == FLAG_SHOW || mIntentFrom == FLAG_UPDATE ) {
ShowChildView();
} else {
AddZuChildView();
}
// linearLayout.refreshDrawableState();
}
}.execute();
} else if (mType == ViewTypeUtil.item_view_type_fourteen) {// 日期时间格式
mTypeFourteenView = LayoutInflater.from(this).inflate(R.layout.item_type_three, null);
mFourteenDateKeyTv = (TextView) mTypeFourteenView.findViewById(R.id.tv_test_date_key);
mFourteenDateValueEt = (EditText) mTypeFourteenView.findViewById(R.id.et_test_date_value);
mFourteenDateValueEt.setTag(formDetail.getTableDetailID());
mFourteenDateKeyTv.setText(formDetail.getCaption());
if (mIntentFrom == FLAG_SHOW) {
mFourteenDateValueEt.setEnabled(false);
}
if (!TextUtils.isEmpty(formDetail.getuValue())) {
mFourteenDateValueEt.setText(formDetail.getuValue());
} else {
mFourteenDateValueEt.setText(TimeUtil.getCurDateStr());
}
mFourteenDateValueEt.setTag(formDetail.getTableDetailID());
mFourteenDateValueEt.setOnClickListener(this);
mTypeFourteenView.setTag(mType);
linearLayout.addView(mTypeFourteenView);
} else if (mType == ViewTypeUtil.item_view_type_fifteen) {// 时间格式
mTypeFifteenView = LayoutInflater.from(this).inflate(R.layout.item_type_three, null);
mFifteenDateKeyTv = (TextView) mTypeFifteenView.findViewById(R.id.tv_test_date_key);
mFifteenDateValueEt = (EditText) mTypeFifteenView.findViewById(R.id.et_test_date_value);
mFifteenDateValueEt.setTag(formDetail.getTableDetailID());
mFifteenDateKeyTv.setText(formDetail.getCaption());
if (mIntentFrom == FLAG_SHOW) {
mFifteenDateValueEt.setEnabled(false);
}
if (!TextUtils.isEmpty(formDetail.getuValue())) {
mFifteenDateValueEt.setText(formDetail.getuValue());
} else {
mFifteenDateValueEt.setText(TimeUtil.getStringTimeShort());
}
mFifteenDateValueEt.setTag(formDetail.getTableDetailID());
mFifteenDateValueEt.setOnClickListener(this);
mTypeFifteenView.setTag(mType);
linearLayout.addView(mTypeFifteenView);
} else if (mType == ViewTypeUtil.item_view_type_sixteen) {// 标签
mTypeSixteenView = LayoutInflater.from(this).inflate(R.layout.item_type_zero, null);
mItemSixteenFieldTv = (TextView) mTypeSixteenView.findViewById(R.id.item_zero_field_tv);
mItemSixteenValueEt = (EditText) mTypeSixteenView.findViewById(R.id.item_zero_value_et);
mItemSixteenValueEt.setEnabled(false);
mItemSixteenValueEt.setText(formDetail.getuValue());
mItemSixteenValueEt.setTag(formDetail.getTableDetailID());
mItemSixteenFieldTv.setText(formDetail.getCaption());
mTypeSixteenView.setTag(mType);
linearLayout.addView(mTypeSixteenView);
}
}
}
3.处理复杂控件
其实这个里面的复杂控件就两种,一种是列表 一种是组
给简单大家解释一下列表是什么意思: 大家看有的表格里面是多行多列的,意味着同样的字段数据 可能要添写多条。
那么对应在app里面 就是 这些字段放到了一起 做成了一个 组。 那么这些字段添加多条 就是 在组后面放了一个 + 号
点击+号 这个组 就增加一组 。所以这个带+号的字段 就是 列表字段。
组和 列表 处理起来相对来说非常麻烦。
1).子项数据获取
2).布局嵌套
3).点击事件单独处理
4)保存数据独立拼接
具体这些问题,我就不一一展开说了。大家倘若有做的,具体做的时候自然会体会到。
4.处理点击事件
界面拼接完成后 ,要处理控件里面的点击事件。做的时候就会发现 倘若界面出现同一个item布局 ,布局里面包含点击事件 ,正常给控件设置点击事件,会发现 点击控件的时候无法区分开每个点击事件
所以处理点击事件的时候:原理 就是先循环整体的大布局 ,找到里面的每一项小布局,然后单独处理每一项小布局里面的控件。
这样才能保证点击事件没有问题。
代码贴一下:
@Override
public void onClick(View v) {
if (v.getId() == R.id.content_iv) {// 范例
} else if (v.getId() == R.id.voice_iv) {// 语音
for (int i = 0; i < mMainView.getChildCount(); i++) {
int viewTag = (int) mMainView.getChildAt(i).getTag();
if (viewTag == ViewTypeUtil.item_view_type_two) {
LinearLayout l = (LinearLayout) ((LinearLayout) mMainView.getChildAt(i)).getChildAt(0);
EditText editText = (EditText) l.getChildAt(1);
if (v.getTag().equals(editText.getTag())) {
mVoice = new VoiceToWord(this, editText);
mVoice.GetWordFromVoice();
}
} else if (viewTag == ViewTypeUtil.item_view_type_thirteen || viewTag == ViewTypeUtil.item_view_type_ten) {
LinearLayout l = (LinearLayout) ((LinearLayout) ((LinearLayout) mMainView.getChildAt(i)).getChildAt(0)).getChildAt(1);
for (int j = 0; j < l.getChildCount(); j++) {
LinearLayout l_add = (LinearLayout) ((LinearLayout) l.getChildAt(j));
for (int k = 0; k < l_add.getChildCount(); k++) {
int viewTag_child = (int) l_add.getChildAt(k).getTag();
if (viewTag_child == ViewTypeUtil.item_view_type_two) {
LinearLayout l_view = (LinearLayout) ((LinearLayout) l_add.getChildAt(k)).getChildAt(0);
EditText editText = (EditText) l_view.getChildAt(1);
if (v.getTag().equals(editText.getTag())) {
mVoice = new VoiceToWord(this, editText);
mVoice.GetWordFromVoice();
}
}
}
}
}
}
} else if (v.getId() == R.id.special_iv) {// 特殊字符
for (int i = 0; i < mMainView.getChildCount(); i++) {
int viewTag = (int) mMainView.getChildAt(i).getTag();
if (viewTag == ViewTypeUtil.item_view_type_two) {
LinearLayout l = (LinearLayout) ((LinearLayout) mMainView.getChildAt(i)).getChildAt(0);
EditText editText = (EditText) l.getChildAt(1);
if (v.getTag().equals(editText.getTag())) {
mSpecialdialog = new SpecialWordsDialog(context, editText);
}
} else if (viewTag == ViewTypeUtil.item_view_type_thirteen || viewTag == ViewTypeUtil.item_view_type_ten) {
LinearLayout l = (LinearLayout) ((LinearLayout) ((LinearLayout) mMainView.getChildAt(i)).getChildAt(0)).getChildAt(1);
for (int j = 0; j < l.getChildCount(); j++) {
LinearLayout l_add = (LinearLayout) ((LinearLayout) l.getChildAt(j));
for (int k = 0; k < l_add.getChildCount(); k++) {
int viewTag_child = (int) l_add.getChildAt(k).getTag();
if (viewTag_child == ViewTypeUtil.item_view_type_two) {
LinearLayout l_view = (LinearLayout) ((LinearLayout) l_add.getChildAt(k)).getChildAt(0);
EditText editText = (EditText) l_view.getChildAt(1);
if (v.getTag().equals(editText.getTag())) {
mSpecialdialog = new SpecialWordsDialog(context, editText);
}
}
}
}
}
}
} else if (v.getId() == R.id.et_test_date_value) {// 时间选择
for (int i = 0; i < mMainView.getChildCount(); i++) {
int viewTag = (int) mMainView.getChildAt(i).getTag();
if (viewTag == ViewTypeUtil.item_view_type_three) {
LinearLayout l = (LinearLayout) ((LinearLayout) mMainView.getChildAt(i)).getChildAt(0);
EditText editText = (EditText) l.getChildAt(1);
if (v.getTag().equals(editText.getTag())) {
DlgUtil.showDateTimePickerDlgByType(this, editText, 1);
}
} else if (viewTag == ViewTypeUtil.item_view_type_fourteen) {
LinearLayout l = (LinearLayout) ((LinearLayout) mMainView.getChildAt(i)).getChildAt(0);
EditText editText = (EditText) l.getChildAt(1);
if (v.getTag().equals(editText.getTag())) {
DlgUtil.showDateTimePickerDlg(this, editText);
}
} else if (viewTag == ViewTypeUtil.item_view_type_fifteen) {
LinearLayout l = (LinearLayout) ((LinearLayout) mMainView.getChildAt(i)).getChildAt(0);
EditText editText = (EditText) l.getChildAt(1);
if (v.getTag().equals(editText.getTag())) {
DlgUtil.showDateTimePickerDlgByType(this, editText, 2);
}
} else if (viewTag == ViewTypeUtil.item_view_type_thirteen || viewTag == ViewTypeUtil.item_view_type_ten) {
LinearLayout l = (LinearLayout) ((LinearLayout) ((LinearLayout) mMainView.getChildAt(i)).getChildAt(0)).getChildAt(1);
for (int j = 0; j < l.getChildCount(); j++) {
LinearLayout l_add = (LinearLayout) ((LinearLayout) l.getChildAt(j));
for (int k = 0; k < l_add.getChildCount(); k++) {
int viewTag_child = (int) l_add.getChildAt(k).getTag();
if (viewTag_child == ViewTypeUtil.item_view_type_three) {
LinearLayout l_view = (LinearLayout) ((LinearLayout) l_add.getChildAt(i)).getChildAt(0);
EditText editText = (EditText) l_view.getChildAt(1);
if (v.getTag().equals(editText.getTag())) {
DlgUtil.showDateTimePickerDlgByType(this, editText, 1);
}
} else if (viewTag_child == ViewTypeUtil.item_view_type_fourteen) {
LinearLayout l_view = (LinearLayout) ((LinearLayout) l_add.getChildAt(i)).getChildAt(0);
EditText editText = (EditText) l_view.getChildAt(1);
if (v.getTag().equals(editText.getTag())) {
DlgUtil.showDateTimePickerDlg(this, editText);
}
} else if (viewTag_child == ViewTypeUtil.item_view_type_fifteen) {
LinearLayout l_view = (LinearLayout) ((LinearLayout) l_add.getChildAt(i)).getChildAt(0);
EditText editText = (EditText) l_view.getChildAt(1);
if (v.getTag().equals(editText.getTag())) {
DlgUtil.showDateTimePickerDlgByType(this, editText, 2);
}
}
}
}
}
}
} else if (v.getId() == R.id.et_select_value) {
for (int i = 0; i < mMainView.getChildCount(); i++) {
int viewTag = (int) mMainView.getChildAt(i).getTag();
if (viewTag == ViewTypeUtil.item_view_type_five) {
LinearLayout l = (LinearLayout) ((LinearLayout) mMainView.getChildAt(i)).getChildAt(0);
final EditText editText = (EditText) l.getChildAt(1);
if (v.getTag(R.id.select_view_detial_id).equals(editText.getTag(R.id.select_view_detial_id))) {
int position = (int) editText.getTag(R.id.select_view_position);
mDataList.clear();
List dicList = mFormDetailList.get(position).dicBeanList;
for (DicBean dicBean : dicList) {
mDataList.add(dicBean.getDicName());
}
CusSpinerAdapter mAdapter = new CusSpinerAdapter(this);
mAdapter.refreshData(mDataList, 0);
View contentView = LayoutInflater.from(context).inflate(R.layout.common_form_view, null);
SpinerPopWindow mSpinerPopWindow = new SpinerPopWindow(this, R.layout.spiner_window_layout, true);
mSpinerPopWindow.setAdatper(mAdapter);
mSpinerPopWindow.setItemListener(new IOnItemSelectListener() {
@Override
public void onItemClick(int pos) {
if (pos >= 0 && pos <= mDataList.size()) {
String value = (String) mDataList.get(pos);
editText.setText(value.toString());
}
}
});
mSpinerPopWindow.setWidth(editText.getWidth());
int windowPos[] = PopMeasure.calculatePopWindowPos(editText, contentView);
int xOff = 25;// 可以自己调整偏移
windowPos[0] -= xOff;
mSpinerPopWindow.showAtLocation(v, Gravity.TOP | Gravity.START, windowPos[0], windowPos[1]);
}
}else if(viewTag == ViewTypeUtil.item_view_type_thirteen || viewTag == ViewTypeUtil.item_view_type_ten){
LinearLayout l = (LinearLayout) ((LinearLayout) ((LinearLayout) mMainView.getChildAt(i)).getChildAt(0)).getChildAt(1);
for (int j = 0; j < l.getChildCount(); j++) {
LinearLayout l_add = (LinearLayout) ((LinearLayout) l.getChildAt(j));//第二层布局layout
for (int k = 0; k < l_add.getChildCount(); k++) {
int viewTag_child = (int) l_add.getChildAt(k).getTag();
if(viewTag_child == ViewTypeUtil.item_view_type_five){
LinearLayout l_view = (LinearLayout) ((LinearLayout) l_add.getChildAt(k)).getChildAt(0);//第三层每一项
final EditText editText = (EditText) l_view.getChildAt(1);
if (v.getTag(R.id.select_view_detial_id).equals(editText.getTag(R.id.select_view_detial_id))) {
int position = (int) editText.getTag(R.id.select_view_position);
mDataList.clear();
List dicList = new ArrayList<FormDetailBean.FormDetail.DicBean>();
if (viewTag == ViewTypeUtil.item_view_type_ten) {
dicList = mFormDetailChildList.get(position).dicBeanList;
}else if (viewTag == ViewTypeUtil.item_view_type_thirteen) {
dicList = mFormZuDetailChildList.get(position).dicBeanList;
}
for (DicBean dicBean : dicList) {
mDataList.add(dicBean.getDicName());
}
CusSpinerAdapter mAdapter = new CusSpinerAdapter(this);
mAdapter.refreshData(mDataList, 0);
View contentView = LayoutInflater.from(context).inflate(R.layout.common_form_view, null);
SpinerPopWindow mSpinerPopWindow = new SpinerPopWindow(this, R.layout.spiner_window_layout, true);
mSpinerPopWindow.setAdatper(mAdapter);
mSpinerPopWindow.setItemListener(new IOnItemSelectListener() {
@Override
public void onItemClick(int pos) {
if (pos >= 0 && pos <= mDataList.size()) {
String value = (String) mDataList.get(pos);
editText.setText(value.toString());
}
}
});
mSpinerPopWindow.setWidth(editText.getWidth());
int windowPos[] = PopMeasure.calculatePopWindowPos(editText, contentView);
int xOff = 200;// 可以自己调整偏移
windowPos[0] -= xOff;
mSpinerPopWindow.showAtLocation(v, Gravity.TOP | Gravity.START,windowPos[0], windowPos[1]);
}
}else if(viewTag_child == ViewTypeUtil.item_view_type_thirteen || viewTag_child == ViewTypeUtil.item_view_type_ten){
LinearLayout l3 = (LinearLayout) ((LinearLayout) ((LinearLayout) l_add.getChildAt(k)).getChildAt(0)).getChildAt(1);
for (int j3 = 0; j3 < l3.getChildCount(); j3++) {
LinearLayout l_add3 = (LinearLayout) ((LinearLayout) l3.getChildAt(j3));
for (int k3 = 0; k3 < l_add3.getChildCount(); k3++) {
int viewTag_child3 = (int) l_add3.getChildAt(k3).getTag();
if(viewTag_child3 == ViewTypeUtil.item_view_type_five){
LinearLayout l_view = (LinearLayout) ((LinearLayout) l_add3.getChildAt(k3)).getChildAt(0);
final EditText editText = (EditText) l_view.getChildAt(1);
if (v.getTag(R.id.select_view_detial_id).equals(editText.getTag(R.id.select_view_detial_id))) {
int position = (int) editText.getTag(R.id.select_view_position);
mDataList.clear();
List dicList = mFormZuDetailChildList.get(position).dicBeanList;
for (DicBean dicBean : dicList) {
mDataList.add(dicBean.getDicName());
}
CusSpinerAdapter mAdapter = new CusSpinerAdapter(this);
mAdapter.refreshData(mDataList, 0);
View contentView = LayoutInflater.from(context).inflate(R.layout.common_form_view, null);
SpinerPopWindow mSpinerPopWindow = new SpinerPopWindow(this, R.layout.spiner_window_layout, true);
mSpinerPopWindow.setAdatper(mAdapter);
mSpinerPopWindow.setItemListener(new IOnItemSelectListener() {
@Override
public void onItemClick(int pos) {
if (pos >= 0 && pos <= mDataList.size()) {
String value = (String) mDataList.get(pos);
editText.setText(value.toString());
}
}
});
mSpinerPopWindow.setWidth(editText.getWidth());
int windowPos[] = PopMeasure.calculatePopWindowPos(editText, contentView);
int xOff = 200;// 可以自己调整偏移
windowPos[0] -= xOff;
mSpinerPopWindow.showAtLocation(v, Gravity.TOP | Gravity.START,windowPos[0], windowPos[1]);
}
}
}
}
}
}
}
}
}
} else if (v.getId() == R.id.et_select_part_value) {
CheckPart_Monomer_Activity.actionStartForResult(context, mPartSelectValueEt.getText().toString(), “”, “”, monomerId, CheckPart_Monomer_Activity.class);
} else if (v.getId() == R.id.cbx_type_nine) {// 类型9 多选框意向
for (int i = 0; i < mMainView.getChildCount(); i++) {
int viewTag = (int) mMainView.getChildAt(i).getTag();
if (viewTag == ViewTypeUtil.item_view_type_nine) {
LinearLayout l = (LinearLayout) ((LinearLayout) mMainView.getChildAt(i)).getChildAt(0);
CheckBox checkBox = (CheckBox) l.getChildAt(1);
} else if (viewTag == ViewTypeUtil.item_view_type_thirteen || viewTag == ViewTypeUtil.item_view_type_ten) {
LinearLayout l = (LinearLayout) ((LinearLayout) ((LinearLayout) mMainView.getChildAt(i)).getChildAt(0)).getChildAt(1);
for (int j = 0; j < l.getChildCount(); j++) {
LinearLayout l_add = (LinearLayout) ((LinearLayout) l.getChildAt(j));
for (int k = 0; k < l_add.getChildCount(); k++) {
int viewTag_child = (int) l_add.getChildAt(k).getTag();
if (viewTag_child == ViewTypeUtil.item_view_type_nine) {
LinearLayout l_view = (LinearLayout) ((LinearLayout) l_add.getChildAt(k)).getChildAt(0);
CheckBox checkBox = (CheckBox) l_view.getChildAt(1);
}
}
}
}
}
} else if (v.getId() == R.id.item_eleven_value_et) {
for (int i = 0; i < mMainView.getChildCount(); i++) {
int viewTag = (int) mMainView.getChildAt(i).getTag();
if (viewTag == ViewTypeUtil.item_view_type_eleven) {
if (!TextUtils.isEmpty(mDrawingPath)) {
Intent intent = new Intent(CommonFormViewActivity.this, DrawingTypeActivity.class);
intent.putExtra(“drawingPath”, mDrawingPath);
最后
跳槽季整理面试题已经成了我多年的习惯!在这里我和身边一些朋友特意整理了一份快速进阶为Android高级工程师的系统且全面的学习资料。涵盖了Android初级——Android高级架构师进阶必备的一些学习技能。
附上:我们之前因为秋招收集的二十套一二线互联网公司Android面试真题(含BAT、小米、华为、美团、滴滴)和我自己整理Android复习笔记(包含Android基础知识点、Android扩展知识点、Android源码解析、设计模式汇总、Gradle知识点、常见算法题汇总。)
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
= (int) l_add.getChildAt(k).getTag();
if (viewTag_child == ViewTypeUtil.item_view_type_nine) {
LinearLayout l_view = (LinearLayout) ((LinearLayout) l_add.getChildAt(k)).getChildAt(0);
CheckBox checkBox = (CheckBox) l_view.getChildAt(1);
}
}
}
}
}
} else if (v.getId() == R.id.item_eleven_value_et) {
for (int i = 0; i < mMainView.getChildCount(); i++) {
int viewTag = (int) mMainView.getChildAt(i).getTag();
if (viewTag == ViewTypeUtil.item_view_type_eleven) {
if (!TextUtils.isEmpty(mDrawingPath)) {
Intent intent = new Intent(CommonFormViewActivity.this, DrawingTypeActivity.class);
intent.putExtra(“drawingPath”, mDrawingPath);
最后
跳槽季整理面试题已经成了我多年的习惯!在这里我和身边一些朋友特意整理了一份快速进阶为Android高级工程师的系统且全面的学习资料。涵盖了Android初级——Android高级架构师进阶必备的一些学习技能。
附上:我们之前因为秋招收集的二十套一二线互联网公司Android面试真题(含BAT、小米、华为、美团、滴滴)和我自己整理Android复习笔记(包含Android基础知识点、Android扩展知识点、Android源码解析、设计模式汇总、Gradle知识点、常见算法题汇总。)
[外链图片转存中…(img-yLwLmp6P-1715707345117)]
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!