Android信息界面编辑及组合控件的封装

本文实例为大家分享了Android编辑信息界面,及组合控件的封装,供大家参考,具体内容如下

Github地址(完整Demo,欢迎下载)

效果图

Android信息界面编辑及组合控件的封装_第1张图片

 attrs.xml



 
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  
  
  
  
 

获取到各属性

private void initAttrs(Context context, AttributeSet attrs) {
  //标题的默认字体颜色
  int defaultTitleColor = context.getResources().getColor(R.color.item_group_title);
  //输入框的默认字体颜色
  int defaultEdtColor = context.getResources().getColor(R.color.item_group_edt);
  //输入框的默认的提示内容的字体颜色
  int defaultHintColor = context.getResources().getColor(R.color.item_group_edt);

  TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.ItemGroup);
  String title = typedArray.getString(R.styleable.ItemGroup_title);
  float paddingLeft = typedArray.getDimension(R.styleable.ItemGroup_paddingLeft, 15);
  float paddingRight = typedArray.getDimension(R.styleable.ItemGroup_paddingRight, 15);
  float paddingTop = typedArray.getDimension(R.styleable.ItemGroup_paddingTop, 5);
  float paddingBottom = typedArray.getDimension(R.styleable.ItemGroup_paddingTop, 5);
  float titleSize = typedArray.getDimension(R.styleable.ItemGroup_title_size, 15);
  int titleColor = typedArray.getColor(R.styleable.ItemGroup_title_color, defaultTitleColor);
  String content = typedArray.getString(R.styleable.ItemGroup_edt_content);
  float contentSize = typedArray.getDimension(R.styleable.ItemGroup_edt_text_size, 13);
  int contentColor = typedArray.getColor(R.styleable.ItemGroup_edt_text_color, defaultEdtColor);
  String hintContent = typedArray.getString(R.styleable.ItemGroup_edt_hint_content);
  int hintColor = typedArray.getColor(R.styleable.ItemGroup_edt_hint_text_color, defaultHintColor);
  //默认输入框可以编辑
  boolean isEditable = typedArray.getBoolean(R.styleable.ItemGroup_isEditable, true);
  //向右的箭头图标是否可见,默认可见
  boolean showJtIcon = typedArray.getBoolean(R.styleable.ItemGroup_jt_visible, true);
  typedArray.recycle();

  //设置数据
  //设置item的内边距
  itemGroupLayout.setPadding((int) paddingLeft, (int) paddingTop, (int) paddingRight, (int) paddingBottom);
  titleTv.setText(title);
  titleTv.setTextSize(titleSize);
  titleTv.setTextColor(titleColor);

  contentEdt.setText(content);
  contentEdt.setTextSize(contentSize);
  contentEdt.setTextColor(contentColor);
  contentEdt.setHint(hintContent);
  contentEdt.setHintTextColor(hintColor);
  contentEdt.setFocusableInTouchMode(isEditable); //设置输入框是否可以编辑
  contentEdt.setLongClickable(false); //输入框不允许长按
  jtRightIv.setVisibility(showJtIcon ? View.VISIBLE : View.GONE); //设置向右的箭头图标是否可见
}

xml布局文件




 

 

 

 

调用的activity

/**
 * 组合控件封装(提交信息及编辑信息界面及功能)
 */
public class MainActivity extends AppCompatActivity {

 private Context mContext;
 private ItemGroup nameIG, idCardIG, birthdayIG, cityIG;

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);

  mContext = this;
  initView();
 }

 private void initView() {
  nameIG = (ItemGroup) findViewById(R.id.name_ig);
  idCardIG = (ItemGroup) findViewById(R.id.id_card_ig);
  birthdayIG = (ItemGroup) findViewById(R.id.select_birthday_ig);
  cityIG = (ItemGroup) findViewById(R.id.select_city_ig);
  birthdayIG.setItemOnClickListener(new ItemGroup.ItemOnClickListener() {
   @Override
   public void onClick(View v) {
    Toast.makeText(mContext, "点击了选择出生日期", Toast.LENGTH_SHORT).show();
   }
  });
  cityIG.setItemOnClickListener(new ItemGroup.ItemOnClickListener() {
   @Override
   public void onClick(View v) {
    Toast.makeText(mContext, "点击了选择城市", Toast.LENGTH_SHORT).show();
   }
  });
 }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

你可能感兴趣的:(Android信息界面编辑及组合控件的封装)