WindowManager.LayoutParams.WRAP_CONTENT);popupWindow.setFoc

时间:2021-12-12 02:59:47

标签:数字键盘

public class SimpleGridViewTest extends Activity {
EditText editText;
private PopupWindow popupWindow;
private GridView mGridView;
private View contentview;
private List<String> datas = new ArrayList<String>();
GridViewAdapter adapter;
private static String editNum = ""; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.menu); editText = (EditText) findViewById(R.id.editText); initData(); LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); contentview = inflater.inflate(R.layout.simple_grid_view_test, null); popupWindow = new PopupWindow(contentview, WindowManager.LayoutParams.WRAP_CONTENT, WindowManager.LayoutParams.WRAP_CONTENT); popupWindow.setFocusable(true); popupWindow.setOutsideTouchable(false); mGridView = (GridView) contentview.findViewById(R.id.gridview); adapter = new GridViewAdapter(this, R.layout.grid_view_item, datas); mGridView.setAdapter(adapter); mGridView.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { String s = datas.get(position); Toast.makeText(SimpleGridViewTest.this, "xuan" + position, Toast.LENGTH_SHORT).show(); } @Override public void onNothingSelected(AdapterView<?> parent) { } }); mGridView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { String num = editText.getText().toString().trim(); editNum = datas.get(position); if (editNum.equals("OK")) { editText.setText(editText.getText().toString().trim()); popupWindow.dismiss(); } else if (editNum.equals("")) { if (num.length() > 0) { editText.setText(num.substring(0, num.length() - 1)); editText.setSelection(editText.getText().length()); } } else { editText.setText(editText.getText().toString().trim() + datas.get(position)); editText.setSelection(editText.getText().length()); }

// Toast.makeText(SimpleGridViewTest.this,"dian"+position,Toast.LENGTH_SHORT).show();
}
});

// 设置不挪用系统键盘 if (Build.VERSION.SDK_INT <= 10) { editText.setInputType(InputType.TYPE_NULL); } else { getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); try { Class<EditText> cls = EditText.class; Method setShowSoftInputOnFocus = cls.getMethod("setShowSoftInputOnFocus", boolean.class); setShowSoftInputOnFocus.setAccessible(true); setShowSoftInputOnFocus.invoke(editText, false); } catch (Exception e) { e.printStackTrace(); } } editText.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { popupWindow.showAsDropDown(editText); } }); } @Override public void onBackPressed() { //点击返回按钮 if (popupWindow.isShowing()) { popupWindow.dismiss(); return; } super.onBackPressed(); } // 填充数据 private void initData() { for (int i = 0; i < 12; i++) { if (i < 3) { datas.add(String.valueOf(i + 1)); } else if (i > 3 && i < 7) { datas.add(String.valueOf(i)); } else if (i > 7 && i < 11) { datas.add(String.valueOf(i - 1)); } else if (i == 3) { datas.add("OK"); } else if (i == 11) { datas.add("0"); } else { datas.add(""); } } }

}

GridView+PopupWindow自界说数字键盘

标签:数字键盘