自定义View
来源:互联网 发布:java 项目开发 图 编辑:程序博客网 时间:2024/05/29 18:58
//主界面
package com.example.myapplication;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;public class MainActivity extends AppCompatActivity { private AddDeleteView adv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); adv = (AddDeleteView)findViewById(R.id.adv); adv.setOnAddDelClickListener(new AddDeleteView.OnAddDelClickListener() { @Override public void onAddClick(View v) { int origin = adv.getNumble(); origin++; adv.setNumble(origin); } @Override public void onDelClick(View v) { int origin = adv.getNumble(); origin--; adv.setNumble(origin); } }); }}
//添加View
package com.example.myapplication;import android.content.Context;import android.content.res.TypedArray;import android.support.annotation.Nullable;import android.util.AttributeSet;import android.view.View;import android.widget.EditText;import android.widget.LinearLayout;import android.widget.TextView;/** * author:Created by WangZhiQiang on 2017/11/1. */public class AddDeleteView extends LinearLayout { private TextView delete; private TextView add; private EditText numble; private OnAddDelClickListener listener; interface OnAddDelClickListener{ void onAddClick(View v); void onDelClick(View v); } public void setOnAddDelClickListener(OnAddDelClickListener listener){ if(listener != null){ this.listener = listener; } } public AddDeleteView(Context context) { this(context,null); } public AddDeleteView(Context context, @Nullable AttributeSet attrs) { this(context, attrs,0); } public AddDeleteView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); initView(context, attrs, defStyleAttr); } private void initView(Context context, AttributeSet attrs, int defStyleAttr) { View.inflate(context,R.layout.adddeleteview,this); TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.AddDeleteViewStyle); delete = (TextView)findViewById(R.id.delete); numble = (EditText)findViewById(R.id.numble); add = (TextView)findViewById(R.id.add); String left_text = typedArray.getString(R.styleable.AddDeleteViewStyle_left_text); String right_text = typedArray.getString(R.styleable.AddDeleteViewStyle_right_text); String middle_text = typedArray.getString(R.styleable.AddDeleteViewStyle_middle_text); delete.setText(left_text); numble.setText(middle_text); add.setText(right_text); //回收 typedArray.recycle(); delete.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { listener.onDelClick(v); } }); add.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { listener.onAddClick(v); } }); } public void setNumble(int num){ if(num > 0){ numble.setText(num + ""); } } public int getNumble(){ int numb = 0 ; try { String numberStr = numble.getText().toString().trim(); numb = Integer.valueOf(numberStr); } catch (Exception e) { numb = 0 ; } return numb; }}//xml<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:add="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="wrap_content" tools:context="com.example.myapplication.MainActivity" android:orientation="vertical" > <com.example.myapplication.AddDeleteView android:id="@+id/adv" android:layout_width="match_parent" android:layout_height="100dp" add:left_text="减" add:right_text="加" add:middle_text="3" />//自定义view样式<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="wrap_content"> <TextView android:id="@+id/delete" android:layout_width="50dp" android:layout_height="50dp" android:text="-" android:textSize="30dp" android:padding="10dp"/> <EditText android:id="@+id/numble" android:layout_width="50dp" android:layout_height="50dp" android:textSize="30dp" android:text="1"/> <TextView android:id="@+id/add" android:layout_width="50dp" android:layout_height="50dp" android:text="+" android:textSize="30dp" android:padding="10dp"/></LinearLayout>
阅读全文
0 0
- 自定义view
- 自定义View
- 自定义view
- 自定义View
- 自定义View
- 自定义view
- 自定义View
- 自定义view
- 自定义view
- 自定义View
- 自定义View
- 自定义view
- 自定义view
- 自定义view
- 自定义view
- 自定义view
- 自定义View
- 自定义View
- ESP8266的MQTT客户端搭建教程(基于NONS_SDK_v2.0)
- 在线邮箱提取工具,网页数据提取工具,网页数据抓取工具
- 消息映射的实现
- 函数安全
- 进程通信
- 自定义View
- Intellij IDEA中serialVersionUID配置
- [杂题] HDU5288: OO’s Sequence
- C++多态的笼统解释
- Shadowsocks安装及配置
- dataguard异机安装从库时遇到的几个问题及解决方法
- python设计模式(享元模式)
- L
- iBatis中RowHandler处理大数据量的导出