android 自定义小数软键盘
2014-10-16 17:48
363 查看
admin.xml
mainActivity.java
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#A2B5CD" android:orientation="vertical" > <LinearLayout android:id="@+id/buttonbar" style="@android:style/ButtonBar" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:orientation="vertical" > <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <Button android:id="@+id/btn_0" android:layout_width="0dp" android:layout_height="35.0dip" android:layout_weight="1" android:text="0" android:textColor="@color/text_color" /> <Button android:id="@+id/btn_1" android:layout_width="0dp" android:layout_height="35.0dip" android:layout_weight="1" android:text="1" android:textColor="@color/text_color" /> <Button android:id="@+id/btn_2" android:layout_width="0dp" android:layout_height="35.0dip" android:layout_weight="1" android:text="2" android:textColor="@color/text_color" /> <Button android:id="@+id/btn_3" android:layout_width="0dp" android:layout_height="35.0dip" android:layout_weight="1" android:text="3" android:textColor="@color/text_color" /> <Button android:id="@+id/btn_4" android:layout_width="0dp" android:layout_height="35.0dip" android:layout_weight="1" android:text="4" android:textColor="@color/text_color" /> <Button android:id="@+id/btn_5" android:layout_width="0dp" android:layout_height="35.0dip" android:layout_weight="1" android:text="5" android:textColor="@color/text_color" /> </LinearLayout> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <Button android:id="@+id/btn_6" android:layout_width="0dp" android:layout_height="35.0dip" android:layout_weight="1" android:text="6" android:textColor="@color/text_color" /> <Button android:id="@+id/btn_7" android:layout_width="0dp" android:layout_height="35.0dip" android:layout_weight="1" android:text="7" android:textColor="@color/text_color" /> <Button android:id="@+id/btn_8" android:layout_width="0dp" android:layout_height="35.0dip" android:layout_weight="1" android:text="8" android:textColor="@color/text_color" /> <Button android:id="@+id/btn_9" android:layout_width="0dp" android:layout_height="35.0dip" android:layout_weight="1" android:text="9" android:textColor="@color/text_color" /> <Button android:id="@+id/btn_dian" android:layout_width="0dp" android:layout_height="35.0dip" android:layout_weight="1" android:text="." android:textColor="@color/text_color" /> <Button android:id="@+id/btn_del" android:layout_width="0dp" android:layout_height="35.0dip" android:layout_weight="1" android:text="删除" android:textColor="@color/text_color" /> </LinearLayout> </LinearLayout> <ScrollView android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_above="@id/buttonbar" > <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical" android:padding="10dp" > <EditText android:id="@+id/et1" android:layout_width="100dp" android:layout_height="wrap_content" android:inputType="numberDecimal" android:maxLength="15" /> <EditText android:id="@+id/et2" android:layout_width="100dp" android:layout_height="wrap_content" android:layout_weight="7" android:inputType="numberDecimal" android:maxLength="15" /> <pre name="code" class="html"> <EditText android:id="@+id/et3" android:layout_width="100dp" android:layout_height="wrap_content" android:layout_weight="7" android:inputType="numberDecimal" android:maxLength="15" /></LinearLayout> </ScrollView></RelativeLayout>
mainActivity.java
EditText etz[]; private int et_r[] = { R.id.et1, R.id.et2, R.id.et3}; private Button btn[]; private int btn_r[] = { R.id.btn_0, R.id.btn_1, R.id.btn_2, R.id.btn_3, R.id.btn_4, R.id.btn_5, R.id.btn_6, R.id.btn_7, R.id.btn_8, R.id.btn_9, R.id.btn_dian, R.id.btn_del }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.admin); etz = new EditText[et_r.length]; // 不弹出软键盘有光标 for (int i = 0; i < etz.length; i++) { etz[i] = (EditText) findViewById(et_r[i]); srfpb(etz[i]); } btn = new Button[btn_r.length]; for (int i = 0; i < btn.length; i++) { btn[i] = (Button) findViewById(btn_r[i]); btn[i].setOnClickListener(new OnClickListener() { public void onClick(View v) { Button b = (Button) findViewById(v.getId()); EditText edittext = null; // View et; // View focusView = getCurrentFocus(); // et = focusView.findFocus(); // EditText ed = (EditText) findViewById(et.getId()); // ed.setText(b.getText()); for (int i = 0; i < etz.length; i++) { if (etz[i].hasFocus()) { edittext = etz[i]; break; } } if (edittext != null) { int index = edittext.getSelectionStart();// 获取光标所在位置 Editable edit = edittext.getEditableText();// 获取EditText的文字 if (v.getId() == R.id.btn_del) { if (index > 0) { edit.delete(index - 1, index); // 删除光标前字符 } } else { if (v.getId() == R.id.btn_dian) { char[] carr = edit.toString().toCharArray(); int k = 0; for (int i = 0; i < edit.toString().length(); i++) { if (carr[i] == '.') { k = 1; break; } } if (k == 1) return; } if (index < 0 || index >= edit.length()) { edit.append(b.getText()); } else { edit.insert(index, b.getText());// 光标所在位置插入文字 } } } } }); } } /** 输入法软键盘屏蔽,有光标 */ private void srfpb(EditText text) { if (android.os.Build.VERSION.SDK_INT <= 10) {// 4.0以下 text.setInputType(InputType.TYPE_NULL); 4000 } else { getWindow().setSoftInputMode( WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); try { Class<EditText> cls = EditText.class; Method setSoftInputShownOnFocus; setSoftInputShownOnFocus = cls.getMethod( "setSoftInputShownOnFocus", boolean.class); setSoftInputShownOnFocus.setAccessible(true); setSoftInputShownOnFocus.invoke(text, false); } catch (Exception e) { e.printStackTrace(); } try { Class<EditText> cls = EditText.class; Method setShowSoftInputOnFocus; setShowSoftInputOnFocus = cls.getMethod( "setShowSoftInputOnFocus", boolean.class); setShowSoftInputOnFocus.setAccessible(true); setShowSoftInputOnFocus.invoke(text, false); } catch (Exception e) { e.printStackTrace(); } } }
相关文章推荐
- Android自定义控件之我的电话小键盘
- android模拟器自定义分辨率无键盘解决办法
- Android EditText自定义按键盘
- Android-自定义数字小键盘
- android自定义键盘
- android自定义软键盘名字以及监听键盘事件
- android实现 自定义键盘 keydemo
- android自定义密码键盘
- android自定义密码键盘
- ANDROID自定义输入法-自定义键盘
- android定义输入法-自定义键盘(转)
- ANDROID自定义输入法-自定义键盘
- Android自定义密码键盘
- android自定义密码键盘
- ANDROID自定义输入法-自定义键盘
- android 模拟器 自定义分辨率 没有键盘
- Android 自定义像素AVD模拟器无键盘
- android 自定义键盘碰到的问题及解决方法
- Android 自定义的数字键盘 支持随意拖动 和稳定的字符输入的控件
- android自定义随机数字键盘