啊啊 其实不算是自定义控件,就是布局和控制。
XML文件
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:orientation="horizontal"
android:weightSum="3"
android:layout_marginTop="5dip"
android:layout_gravity="center_horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<Button
android:id="@+id/pad_1"
android:layout_width="@dimen/keyboard"
android:layout_height="@dimen/keyboard"
android:textSize="26sp"
android:gravity="center"
android:background="@drawable/view_shape_blue_line"
android:textColor="@color/blue_text"
android:text="1"/>
<Button
android:id="@+id/pad_2"
android:layout_width="@dimen/keyboard"
android:layout_height="@dimen/keyboard"
android:textSize="26sp"
android:layout_marginLeft="20dip"
android:layout_marginRight="20dip"
android:gravity="center"
android:background="@drawable/view_shape_blue_line"
android:textColor="@color/blue_text"
android:text="2"/>
<Button
android:id="@+id/pad_3"
android:layout_width="@dimen/keyboard"
android:layout_height="@dimen/keyboard"
android:textSize="26sp"
android:gravity="center"
android:background="@drawable/view_shape_blue_line"
android:textColor="@color/blue_text"
android:text="3"/>
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_gravity="center_horizontal"
android:layout_width="wrap_content"
android:layout_marginTop="5dip"
android:layout_height="wrap_content">
<Button
android:id="@+id/pad_4"
android:layout_width="@dimen/keyboard"
android:layout_height="@dimen/keyboard"
android:textSize="26sp"
android:gravity="center"
android:background="@drawable/view_shape_blue_line"
android:textColor="@color/blue_text"
android:text="4"/>
<Button
android:id="@+id/pad_5"
android:layout_width="@dimen/keyboard"
android:layout_height="@dimen/keyboard"
android:textSize="26sp"
android:layout_marginLeft="20dip"
android:layout_marginRight="20dip"
android:gravity="center"
android:background="@drawable/view_shape_blue_line"
android:textColor="@color/blue_text"
android:text="5"/>
<Button
android:id="@+id/pad_6"
android:layout_width="@dimen/keyboard"
android:layout_height="@dimen/keyboard"
android:textSize="26sp"
android:gravity="center"
android:background="@drawable/view_shape_blue_line"
android:textColor="@color/blue_text"
android:text="6"/>
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_gravity="center_horizontal"
android:layout_width="wrap_content"
android:layout_marginTop="5dip"
android:layout_height="wrap_content">
<Button
android:id="@+id/pad_7"
android:layout_width="@dimen/keyboard"
android:layout_height="@dimen/keyboard"
android:textSize="26sp"
android:gravity="center"
android:background="@drawable/view_shape_blue_line"
android:textColor="@color/blue_text"
android:text="7"/>
<Button
android:id="@+id/pad_8"
android:layout_width="@dimen/keyboard"
android:layout_height="@dimen/keyboard"
android:textSize="26sp"
android:layout_marginLeft="20dip"
android:layout_marginRight="20dip"
android:gravity="center"
android:background="@drawable/view_shape_blue_line"
android:textColor="@color/blue_text"
android:text="8"/>
<Button
android:id="@+id/pad_9"
android:layout_width="@dimen/keyboard"
android:layout_height="@dimen/keyboard"
android:textSize="26sp"
android:gravity="center"
android:background="@drawable/view_shape_blue_line"
android:textColor="@color/blue_text"
android:text="9"/>
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_gravity="center_horizontal"
android:layout_width="wrap_content"
android:layout_marginTop="5dip"
android:layout_height="wrap_content">
<Button
android:id="@+id/pad_dot"
android:layout_width="@dimen/keyboard"
android:layout_height="@dimen/keyboard"
android:textSize="26sp"
android:gravity="center"
android:background="@drawable/view_shape_blue_line"
android:textColor="@color/blue_text"
android:text="."/>
<Button
android:id="@+id/pad_0"
android:layout_width="@dimen/keyboard"
android:layout_height="@dimen/keyboard"
android:textSize="26sp"
android:layout_marginLeft="20dip"
android:layout_marginRight="20dip"
android:gravity="center"
android:background="@drawable/view_shape_blue_line"
android:textColor="@color/blue_text"
android:text="0"/>
<ImageButton
android:id="@+id/pad_del"
android:layout_width="@dimen/keyboard"
android:layout_height="@dimen/keyboard"
android:scaleType="center"
android:background="@drawable/view_shape_blue_line"
android:src="@drawable/mm_title_back_focused"/>
</LinearLayout>
</LinearLayout>
然后是,调用:
private void initView() {
ArrayList<Integer> mViewsId = new ArrayList<>();
mViewsId.add(R.id.pad_0);
mViewsId.add(R.id.pad_1);
mViewsId.add(R.id.pad_2);
mViewsId.add(R.id.pad_3);
mViewsId.add(R.id.pad_4);
mViewsId.add(R.id.pad_5);
mViewsId.add(R.id.pad_6);
mViewsId.add(R.id.pad_7);
mViewsId.add(R.id.pad_8);
mViewsId.add(R.id.pad_9);
mViewsId.add(R.id.pad_dot);
mViewsId.add(R.id.pad_del);
for (int viewId : mViewsId) {
findViewById(viewId).setOnClickListener(this);
findViewById(viewId).setOnLongClickListener(this);
}
}
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.pad_0:
edDiscount.append("0");
break;
case R.id.pad_1:
edDiscount.append("1");
break;
case R.id.pad_2:
edDiscount.append("2");
break;
case R.id.pad_3:
break;
case R.id.pad_4:
break;
case R.id.pad_5:
break;
case R.id.pad_6:
break;
case R.id.pad_7:
break;
case R.id.pad_8:
break;
case R.id.pad_9:
break;
case R.id.pad_dot:
break;
case R.id.pad_del:
int last=edDiscount.getText().length();
if (last>0){
//删除最后一位
edDiscount.getText().delete(last-1,last);
}
break;
}