显示数据表格+ PopupWindow自定义数字键盘

  

公共类SimpleGridViewTest延伸活动{EditText EditText
,
私人PopupWindow PopupWindow;
私人GridView mGridView;
预展contentview;
私人List数据=new ArrayList ();
GridViewAdapter适配器;
私有静态字符串editNum=啊?

  
 <代码> @Override
  公共空间onCreate(包savedInstanceState) {
  super.onCreate (savedInstanceState);
  setContentView (R.layout.menu);
  editText editText=() findViewById (R.id.editText);
  initData ();
  LayoutInflater增压泵=(LayoutInflater) getSystemService (Context.LAYOUT_INFLATER_SERVICE);
  contentview=inflater.inflate(出来。simple_grid_view_test, null);
  popupWindow=new popupWindow (contentview WindowManager.LayoutParams。WRAP_CONTENT WindowManager.LayoutParams.WRAP_CONTENT);
  popupWindow.setFocusable(真正的);
  popupWindow.setOutsideTouchable(假);
  mGridView=(显示数据表格)contentview.findViewById (R.id.gridview);
  适配器=new GridViewAdapter(出来。grid_view_item、数据);
  mGridView.setAdapter(适配器);
  mGridView。setOnItemSelectedListener(新AdapterView.OnItemSelectedListener () {
  @Override
  公共空间onItemSelected (AdapterView<?比;父,查看视图,int位置,长id) {
  字符串s=datas.get(位置);
  Toast.makeText (SimpleGridViewTest。“宣”+位置,Toast.LENGTH_SHORT),告诉();
  }
  
  @Override
  公共空间onNothingSelected (AdapterView<?比;父){
  }
  });
  mGridView。setOnItemClickListener(新AdapterView.OnItemClickListener () {
  @Override
  公共空间onItemClick (AdapterView<?比;父,查看视图,int位置,长id) {
  .trim .toString字符串num=editText.getText () () ();
  editNum=datas.get(位置);
  如果(editNum.equals (“OK”)) {
  .trim .toString editText.setText (editText.getText () () ());
  popupWindow.dismiss ();
  }else if (editNum.equals (" ")) {
  如果(num.length()在0){
  editText.setText (num。substring (0, num.length () - 1));
  editText.setSelection (editText.getText () . length ());
  }
  其他}{
  .trim .toString editText.setText (editText.getText () () () + datas.get(位置);
  editText.setSelection (editText.getText () . length ());
  } 
  

//Toast.makeText (SimpleGridViewTest.this,“dian" +位置,Toast.LENGTH_SHORT),告诉();
}
});

  
 <代码>//设置不调用系统键盘
  如果(Build.VERSION。SDK_INT & lt;=10) {
  editText.setInputType (InputType.TYPE_NULL);
  其他}{
  getWindow () .setSoftInputMode (WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
  尝试{
  Classcls=EditText.class;
  方法setShowSoftInputOnFocus=cls。getMethod (“setShowSoftInputOnFocus”, boolean.class);
  setShowSoftInputOnFocus.setAccessible(真正的);
  setShowSoftInputOnFocus。editText invoke(假);
  }捕捉(异常e) {
  e.printStackTrace ();
  }
  }
  editText。setOnClickListener(新View.OnClickListener () {
  @Override
  公共空间onClick(查看v) {
  editText popupWindow.showAsDropDown ();
  }
  });
  }
  @Override
  公共空间onBackPressed(){//点击返回按钮
  如果(popupWindow.isShowing ()) {
  popupWindow.dismiss ();
  返回;
  }
  super.onBackPressed ();
  }//填充数据
  私人空间initData () {
  for (int i=0;我& lt;12;我+ +){
  如果我& lt;3){
  datas.add(字符串。返回对象的值(i + 1));
  }else if(我在3,,我& lt;7){
  datas.add (String.valueOf (i));
  }else if(我在7,,我& lt;11){
  datas.add(字符串。返回对象的值(- 1));
  }如果(我==3){
  datas.add (“OK”);
  }如果(我==11){
  datas.add (“0”);
  其他}{
  datas.add (" ");
  }
  }
  } 
  

}

显示数据表格+ PopupWindow自定义数字键盘