Android使用Fragment定义弹出数字键盘
fragment主布局文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#F0F1EE"
android:orientation="horizontal" > <LinearLayout
android:id="@+id/input_buttons"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginTop="10dp"
android:orientation="vertical" > <LinearLayout
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:orientation="horizontal" > <Button
android:id="@+id/button_1"
style="@style/input_button_style"
android:text="1" /> <Button
android:id="@+id/button_2"
style="@style/input_button_style"
android:text="2" /> <Button
android:id="@+id/button_3"
style="@style/input_button_style"
android:text="3" />
</LinearLayout> <LinearLayout
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1" > <Button
android:id="@+id/button_4"
style="@style/input_button_style"
android:text="4" /> <Button
android:id="@+id/button_5"
style="@style/input_button_style"
android:text="5" /> <Button
android:id="@+id/button_6"
style="@style/input_button_style"
android:text="6" />
</LinearLayout> <LinearLayout
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1" > <Button
android:id="@+id/button_7"
style="@style/input_button_style"
android:text="7" /> <Button
android:id="@+id/button_8"
style="@style/input_button_style"
android:text="8" /> <Button
android:id="@+id/button_9"
style="@style/input_button_style"
android:text="9" />
</LinearLayout> <LinearLayout
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1" > <Button
android:id="@+id/button_point"
style="@style/input_button_style"
android:text="拨打" /> <Button
android:id="@+id/button_0"
style="@style/input_button_style"
android:text="0" /> <Button
android:id="@+id/button_del"
style="@style/input_button_style"
android:text="删除" />
</LinearLayout>
</LinearLayout> </LinearLayout>
java文件
package com.example.administrator.yunphone.UI; import android.app.Activity;
import android.app.Fragment;
import android.app.Instrumentation;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnLongClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.Toast; import com.example.administrator.yunphone.R; public class MyKeyBoard extends Fragment implements OnClickListener{
Activity mActivity;
View rootView; private Button button_1,button_2,button_3,button_4,button_5,button_6,button_7,button_8,button_9,button_0,button_del,button_point;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
mActivity=getActivity();
rootView=inflater.inflate(R.layout.keyboard_layout, container, false);
initView();
return rootView;
} private void initView() {
button_0=(Button)rootView.findViewById(R.id.button_0);
button_1=(Button)rootView.findViewById(R.id.button_1);
button_2=(Button)rootView.findViewById(R.id.button_2);
button_3=(Button)rootView.findViewById(R.id.button_3);
button_4=(Button)rootView.findViewById(R.id.button_4);
button_5=(Button)rootView.findViewById(R.id.button_5);
button_6=(Button)rootView.findViewById(R.id.button_6);
button_7=(Button)rootView.findViewById(R.id.button_7);
button_8=(Button)rootView.findViewById(R.id.button_8);
button_9=(Button)rootView.findViewById(R.id.button_9);
button_point=(Button)rootView.findViewById(R.id.button_point);
button_del=(Button)rootView.findViewById(R.id.button_del);
button_0.setOnClickListener(this);
button_1.setOnClickListener(this);
button_2.setOnClickListener(this);
button_3.setOnClickListener(this);
button_4.setOnClickListener(this);
button_5.setOnClickListener(this);
button_6.setOnClickListener(this);
button_7.setOnClickListener(this);
button_8.setOnClickListener(this);
button_9.setOnClickListener(this);
button_point.setOnClickListener(this);
button_del.setOnClickListener(this);
button_del.setOnLongClickListener(new OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
// TODO Auto-generated method stub
performKeyDown(KeyEvent.KEYCODE_CLEAR);
return false;
}
});
}
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
switch (arg0.getId()) {
case R.id.button_0:
performKeyDown(KeyEvent.KEYCODE_0);
Toast.makeText(getActivity(),"这是0",Toast.LENGTH_SHORT).show();
break;
case R.id.button_1:
performKeyDown(KeyEvent.KEYCODE_1);
break;
case R.id.button_2:
performKeyDown(KeyEvent.KEYCODE_2);
break;
case R.id.button_3:
performKeyDown(KeyEvent.KEYCODE_3);
break;
case R.id.button_4:
performKeyDown(KeyEvent.KEYCODE_4);
break;
case R.id.button_5:
performKeyDown(KeyEvent.KEYCODE_5);
break;
case R.id.button_6:
performKeyDown(KeyEvent.KEYCODE_6);
break;
case R.id.button_7:
performKeyDown(KeyEvent.KEYCODE_7);
break;
case R.id.button_8:
performKeyDown(KeyEvent.KEYCODE_8);
break;
case R.id.button_9:
performKeyDown(KeyEvent.KEYCODE_9);
break;
case R.id.button_point:
performKeyDown(KeyEvent.KEYCODE_NUMPAD_DOT);
break;
case R.id.button_del:
performKeyDown(KeyEvent.KEYCODE_DEL);
break;
default:
break;
} }
//模拟键盘输入
public void performKeyDown(final int keyCode) {
new Thread() {
public void run() {
try {
Instrumentation inst = new Instrumentation();
inst.sendKeyDownUpSync(keyCode);
} catch (Exception e) {
e.printStackTrace();
}
}
}.start();
}
}
使用XML
<FrameLayout
android:id="@+id/keyboard"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:paddingLeft="10dp"
>
</FrameLayout>
使用JAVA
private void setKeyBoardFragment(){
FragmentManager fragmentManager=getFragmentManager();
FragmentTransaction fragmentTransaction=fragmentManager.beginTransaction();
MyKeyBoard myKeyBoard=new MyKeyBoard();
fragmentTransaction.replace(R.id.keyboard,myKeyBoard);
fragmentTransaction.commit();
}
Android使用Fragment定义弹出数字键盘的更多相关文章
- js输入密文弹出数字键盘
我们经常被产品要求,在移动端的web页面上的输入框输入密码时要弹出数字键盘,而不是全键盘,这个该怎么实现呢? 1.首先要弹出数字键盘,我们只能把input框的type从password改为tel 2. ...
- [HTML5]移动开发不同手机弹出数字键盘问题
这里还是先那么先交代一下遇到的问题.其实无论是tel还是number都不是完美的:type="tel"优点是iOS和Android的键盘表现都差不多缺点是那些字母好多余,虽然我没有 ...
- 【android】禁止Edittext弹出软键盘而且使光标正常显示
/** * 禁止Edittext弹出软件盘,光标依旧正常显示. */ public void disableShowSoftInput() { if (android.os.Build.VERSION ...
- Android EditView 获取焦点 不弹出软键盘
很简单的做法: 找到AndroidManifest.xml文件 然后在对应的activity中增加android:windowSoftInputMode="adjustPan" & ...
- android 点击edittext弹出软键盘,否则不弹
只需要加android:windowSoftInputMode="stateHidden|stateAlwaysHidden"就可以 如:<activity android: ...
- android edittext 获取焦点并弹出软键盘
editText.setFocusable(true); editText.setFocusableInTouchMode(true); editText.requestFocus(); activi ...
- Android实现dialog时候弹出软键盘dialog移位问题
Window win = getWindow(); WindowManager.LayoutParams params = win.getAttributes(); win.setSoftInputM ...
- (转载) EditText初始不弹出软键盘,只有光标显示,点击再弹出
EditText初始不弹出软键盘,只有光标显示,点击再弹出 2013-06-08 10:13 21305人阅读 评论(5) 收藏 举报 分类: android基础(91) 版权声明:本文为博主原创 ...
- android EditText设置弹出数字输入法键盘
<EditText android:id="@+id/edit_digit_input" android:layout_width="wrap_ ...
随机推荐
- java thread run and start
在java中继承Thread,线程启动有两中方法:start()和run().下面简单介绍一下两者的区别. start():启动一个线程,此时线程处于就绪状态,然后调用Thread对象的run()方法 ...
- SGU 275 To xor or not to xor 高斯消元求N个数中选择任意数XORmax
275. To xor or not to xor The sequence of non-negative integers A1, A2, ..., AN is given. You are ...
- Windows MDL原理总结
http://blog.csdn.net/tbwood/article/details/5400419 http://www.cnblogs.com/jack204/archive/2011/12/2 ...
- input上下居中问题
IE:不管该行有没有文字,光标高度与font-size一致.FF:该行有文字时,光标高度与font-size一致.该行无文字时,光标高度与input的height一致.Chrome:该行无文字时,光标 ...
- 分数try catch
要求:编写一个程序,此程序在运行时要求用户输入一个 整数,代表某门课的考试成绩,程序接着给出“不及格”.“及格”.“中”.“良”.“优”的结论.要求程序必须具备足够的健壮性,不管用户输入什 么样的内容 ...
- JAVA第三周作业
一:枚举 package homework; public class EnumTest { public static void main(String[] args) { Size s=Size. ...
- node.js整理 03文件操作-遍历目录和文本编码
遍历目录 递归算法 遍历目录时一般使用递归算法,否则就难以编写出简洁的代码. 递归算法与数学归纳法类似,通过不断缩小问题的规模来解决问题 function factorial(n) { if (n = ...
- VS链接过程中与MSVCRT.lib冲突
vs代码生成有/MT,/MTd,/Md,/MDd四个编译选项,分别代表多线程.多线程调试.多线程DLL.多线程调试DLL. 编译时引用的lib分别为libcmt.li.libcmtd.lib.msvc ...
- 疯狂java学习笔记之面向对象(四) - this关键字
Java中this关键字主要有以下两个方法: 1.this引用 - 可用于任何非static修饰的方法和构造器中,当this用于方法中时,它代表调用该方法的实例/对象;当this用于构造器中时,它代表 ...
- [转]走向视网膜(Retina)的Web时代
转载出处:http://www.w3cplus.com/css/towards-retina-web.html 维基百科将Retina译为“视网膜”."Retina"一词,原意是“ ...