Android使用Fragment定义弹出数字键盘

时间:2023-03-08 20:36:50

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();
}