Java android中如何获取键盘点击事件?
他们有没有办法在安卓系统中获得键盘的点击事件?实际上,我正在开发一个应用程序,需要键盘的点击事件。例如,如果用户在android手机的键盘上按下字母“a”,那么我想要点击事件“a”。最近我遇到了onKeyListener并使用了各种键代码,但最终它对我没有帮助Java android中如何获取键盘点击事件?,java,android,keyboard,Java,Android,Keyboard,他们有没有办法在安卓系统中获得键盘的点击事件?实际上,我正在开发一个应用程序,需要键盘的点击事件。例如,如果用户在android手机的键盘上按下字母“a”,那么我想要点击事件“a”。最近我遇到了onKeyListener并使用了各种键代码,但最终它对我没有帮助 public class KeyCode { private Context con; private EditText edt; private ArrayList<String> array;
public class KeyCode {
private Context con;
private EditText edt;
private ArrayList<String> array;
public KeyCode(Context con, final ArrayList<String> array, final EditText edt)
{
// TODO Auto-generated constructor stub
this.array=array;
this.con=con;
this.edt=edt;
edt.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if(keyCode==event.KEYCODE_A)
{
if(event.isCapsLockOn())
{
edt.append(array.get(0));
}
else
{
edt.append(array.get(26));
}
}
if(keyCode==event.KEYCODE_B)
{
if(event.isCapsLockOn())
{
edt.append(array.get(1));
}
else
{
edt.append(array.get(27));
}
}
if(keyCode==event.KEYCODE_C)
{
if(event.isCapsLockOn())
{
edt.append(array.get(2));
}
else
{
edt.append(array.get(28));
}
}
if(keyCode==event.KEYCODE_D)
{
if(event.isCapsLockOn())
{
edt.append(array.get(3));
}
else
{
edt.append(array.get(29));
}
}
if(keyCode==event.KEYCODE_E)
{
if(event.isCapsLockOn())
{
edt.append(array.get(4));
}
else
{
edt.append(array.get(30));
}
}
if(keyCode==event.KEYCODE_F)
{
if(event.isCapsLockOn())
{
edt.append(array.get(5));
}
else
{
edt.append(array.get(31));
}
}
if(keyCode==event.KEYCODE_G)
{
if(event.isCapsLockOn())
{
edt.append(array.get(6));
}
else
{
edt.append(array.get(32));
}
}
if(keyCode==event.KEYCODE_H)
{
if(event.isCapsLockOn())
{
edt.append(array.get(7));
}
else
{
edt.append(array.get(33));
}
}
if(keyCode==event.KEYCODE_I)
{
if(event.isCapsLockOn())
{
edt.append(array.get(8));
}
else
{
edt.append(array.get(34));
}
}
if(keyCode==event.KEYCODE_J)
{
if(event.isCapsLockOn())
{
edt.append(array.get(9));
}
else
{
edt.append(array.get(35));
}
}
if(keyCode==event.KEYCODE_K)
{
if(event.isCapsLockOn())
{
edt.append(array.get(10));
}
else
{
edt.append(array.get(36));
}
}
if(keyCode==event.KEYCODE_L)
{
if(event.isCapsLockOn())
{
edt.append(array.get(11));
}
else
{
edt.append(array.get(37));
}
}
if(keyCode==event.KEYCODE_M)
{
if(event.isCapsLockOn())
{
edt.append(array.get(12));
}
else
{
edt.append(array.get(38));
}
}
if(keyCode==event.KEYCODE_N)
{
if(event.isCapsLockOn())
{
edt.append(array.get(13));
}
else
{
edt.append(array.get(39));
}
}
if(keyCode==event.KEYCODE_O)
{
if(event.isCapsLockOn())
{
edt.append(array.get(14));
}
else
{
edt.append(array.get(40));
}
}
if(keyCode==event.KEYCODE_P)
{
if(event.isCapsLockOn())
{
edt.append(array.get(15));
}
else
{
edt.append(array.get(41));
}
}
if(keyCode==event.KEYCODE_Q)
{
if(event.isCapsLockOn())
{
edt.append(array.get(16));
}
else
{
edt.append(array.get(42));
}
}
if(keyCode==event.KEYCODE_R)
{
if(event.isCapsLockOn())
{
edt.append(array.get(17));
}
else
{
edt.append(array.get(43));
}
}
if(keyCode==event.KEYCODE_S)
{
if(event.isCapsLockOn())
{
edt.append(array.get(18));
}
else
{
edt.append(array.get(44));
}
}
if(keyCode==event.KEYCODE_T)
{
if(event.isCapsLockOn())
{
edt.append(array.get(19));
}
else
{
edt.append(array.get(45));
}
}
if(keyCode==event.KEYCODE_U)
{
if(event.isCapsLockOn())
{
edt.append(array.get(20));
}
else
{
edt.append(array.get(46));
}
}
if(keyCode==event.KEYCODE_V)
{
if(event.isCapsLockOn())
{
edt.append(array.get(21));
}
else
{
edt.append(array.get(47));
}
}
if(keyCode==event.KEYCODE_W)
{
if(event.isCapsLockOn())
{
edt.append(array.get(22));
}
else
{
edt.append(array.get(48));
}
}
if(keyCode==event.KEYCODE_X)
{
if(event.isCapsLockOn())
{
edt.append(array.get(23));
}
else
{
edt.append(array.get(49));
}
}
if(keyCode==event.KEYCODE_Y)
{
if(event.isCapsLockOn())
{
edt.append(array.get(24));
}
else
{
edt.append(array.get(50));
}
}
if(keyCode==event.KEYCODE_Z)
{
if(event.isCapsLockOn())
{
edt.append(array.get(25));
}
else
{
edt.append(array.get(51));
}
}
if(keyCode==event.KEYCODE_0)
{
edt.append(array.get(52));
}
if(keyCode==event.KEYCODE_1)
{
edt.append(array.get(53));
}
if(keyCode==event.KEYCODE_2)
{
edt.append(array.get(54));
}
if(keyCode==event.KEYCODE_3)
{
edt.append(array.get(55));
}
if(keyCode==event.KEYCODE_4)
{
edt.append(array.get(56));
}
if(keyCode==event.KEYCODE_5)
{
edt.append(array.get(57));
}
if(keyCode==event.KEYCODE_6)
{
edt.append(array.get(58));
}
if(keyCode==event.KEYCODE_7)
{
edt.append(array.get(59));
}
if(keyCode==event.KEYCODE_8)
{
edt.append(array.get(60));
}
if(keyCode==event.KEYCODE_9)
{
edt.append(array.get(61));
}
/*if(keyCode==event.KEYCODE_DEL)
{
edt.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
edt.setText(s);
}
});
}*/
/*if(keyCode==event.KEYCODE_SPACE)
{
edt.append(" ");
}*/
if(keyCode==event.KEYCODE_COMMA)
{
edt.append(",");
}
if(keyCode==event.KEYCODE_PERIOD)
{
edt.append(".");
}
if(keyCode==event.KEYCODE_EQUALS)
{
edt.append("=");
}
if(keyCode==event.KEYCODE_LEFT_BRACKET)
{
edt.append("(");
}
if(keyCode==event.KEYCODE_RIGHT_BRACKET)
{
edt.append(")");
}
if(keyCode==event.KEYCODE_SEMICOLON)
{
edt.append(";");
}
if(keyCode==event.KEYCODE_APOSTROPHE)
{
edt.append("'");
}
if(keyCode==event.KEYCODE_GRAVE)
{
edt.append("~");
}
if(keyCode==event.KEYCODE_SLASH)
{
edt.append("/");
}
if(keyCode==event.KEYCODE_NUMPAD_DIVIDE)
{
edt.append("/");
}
if(keyCode==event.KEYCODE_NUMPAD_MULTIPLY)
{
edt.append("*");
}
if(keyCode==event.KEYCODE_NUMPAD_SUBTRACT)
{
edt.append("-");
}
if(keyCode==event.KEYCODE_NUMPAD_ADD)
{
edt.append("+");
}
return true;
}
});
}
}
公共类密钥码{
私人语境;
私人编辑文本edt;
私有数组列表数组;
公钥代码(上下文con、最终数组列表数组、最终编辑文本edt)
{
//TODO自动生成的构造函数存根
this.array=array;
这个.con=con;
这个.edt=edt;
edt.setOnKeyListener(新视图.OnKeyListener(){
@凌驾
公共布尔onKey(视图v、int keyCode、KeyEvent事件){
if(keyCode==event.keyCode_A)
{
if(event.isCapsLockOn())
{
edt.append(array.get(0));
}
其他的
{
edt.append(array.get(26));
}
}
if(keyCode==event.keyCode_B)
{
if(event.isCapsLockOn())
{
edt.append(array.get(1));
}
其他的
{
edt.append(array.get(27));
}
}
if(keyCode==event.keyCode\u C)
{
if(event.isCapsLockOn())
{
追加(array.get(2));
}
其他的
{
edt.append(array.get(28));
}
}
if(keyCode==event.keyCode\u D)
{
if(event.isCapsLockOn())
{
edt.append(array.get(3));
}
其他的
{
edt.append(array.get(29));
}
}
if(keyCode==event.keyCode_E)
{
if(event.isCapsLockOn())
{
edt.append(array.get(4));
}
其他的
{
edt.append(array.get(30));
}
}
if(keyCode==event.keyCode\u F)
{
if(event.isCapsLockOn())
{
edt.append(array.get(5));
}
其他的
{
edt.append(array.get(31));
}
}
if(keyCode==event.keyCode_G)
{
if(event.isCapsLockOn())
{
edt.append(array.get(6));
}
其他的
{
追加(array.get(32));
}
}
if(keyCode==event.keyCode_H)
{
if(event.isCapsLockOn())
{
edt.append(array.get(7));
}
其他的
{
edt.append(array.get(33));
}
}
if(keyCode==event.keyCode_I)
{
if(event.isCapsLockOn())
{
edt.append(array.get(8));
}
其他的
{
edt.append(array.get(34));
}
}
if(keyCode==event.keyCode_J)
{
if(event.isCapsLockOn())
{
edt.append(array.get(9));
}
其他的
{
edt.append(array.get(35));
}
}
if(keyCode==event.keyCode_K)
{
if(event.isCapsLockOn())
{
edt.append(array.get(10));
}
其他的
{
edt.append(array.get(36));
}
}
if(keyCode==event.keyCode_L)
{
if(event.isCapsLockOn())
{
edt.append(array.get(11));
}
其他的
{
edt.append(array.get(37));
}
}
if(keyCode==event.keyCode\u M)
{
if(event.isCapsLockOn())
{
edt.append(array.get(12));
}
其他的
{
edt.append(array.get(38));
}
}
if(keyCode==event.keyCode\N)
{
if(event.isCapsLockOn())
{
edt.append(array.get(13));
}
其他的
{
edt.append(array.get(39));
}
}
if(keyCode==event.keyCode\u O)
{
if(event.isCapsLockOn())
{
追加(array.get(14));
}
其他的
{
edt.append(array.get(40));
}
}
if(keyCode==偶数
public class ChangeFont extends ActionBarActivity {
private EditText edt;
private ImageView img1,img2,img3,img4,img5;
private ListView lst, savelist;
private TextView txtNew,txtSave;
private DataBaseHelper data;
private ArrayList<String> category;
private ArrayList<String> styleArray;
private Cursor c;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_change_font);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeButtonEnabled(true);
getSupportActionBar().setTitle("Fonts");
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
data=new DataBaseHelper(this);
edt=(EditText)findViewById(R.id.edit_text);
img1=(ImageView)findViewById(R.id.image1);
img2=(ImageView)findViewById(R.id.image2);
img3=(ImageView)findViewById(R.id.image3);
img4=(ImageView)findViewById(R.id.image4);
img5=(ImageView)findViewById(R.id.image5);
lst=(ListView)findViewById(R.id.list);
savelist=(ListView)findViewById(R.id.savelist);
txtNew=(TextView)findViewById(R.id.textnew);
txtSave=(TextView)findViewById(R.id.textsave);
category=new ArrayList<String>();
styleArray=new ArrayList<String>();
try {
data.createDataBase();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
c=data.getSample();
if (c.moveToFirst())
{
while(!c.isAfterLast())
{
String cat = c.getString(c.getColumnIndex(DataBaseUtil.SAMPLE));
category.add(cat);
c.moveToNext();
}
}
/*l=data.getAllLockType();
if (l.moveToFirst())
{
while(!l.isAfterLast())
{
String cat=l.getString(l.getColumnIndex(DataBaseUtil.LOCK_TYPE));
Log.i("String",""+cat);
locktype.add(cat);
l.moveToNext();
}
}
Log.i("Lock Array",""+locktype);*/
SampleStyleAdapter aa=new SampleStyleAdapter(getApplicationContext(), category);
lst.setAdapter(aa);
lst.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
data.openDataBase();
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(edt, InputMethodManager.SHOW_IMPLICIT);
final String stylename = category.get(position).toString();
Toast.makeText(getApplicationContext(), "" + stylename + "position" + position, Toast.LENGTH_SHORT).show();
List<DataBaseModel> sy = data.getStyle(position);
styleArray = new ArrayList<String>();
for (DataBaseModel model : sy) {
String vimal = model.getStyle();
styleArray.add(vimal);
}
Log.i("Style Array", "" + styleArray);
KeyCode key=new KeyCode(getApplicationContext(),styleArray,edt);
//Log.i("Called Key Code","Class");
}
});
edt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
lst.setVisibility(View.GONE);
savelist.setVisibility(View.GONE);
txtNew.setVisibility(View.VISIBLE);
txtSave.setVisibility(View.VISIBLE);
edt.requestFocus();
edt.setCursorVisible(true);
//InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
//imm.showSoftInput(edt, InputMethodManager.SHOW_IMPLICIT);
}
});
img1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v)
{
lst.setVisibility(View.VISIBLE);
savelist.setVisibility(View.GONE);
txtNew.setVisibility(View.GONE);
txtSave.setVisibility(View.GONE);
edt.setCursorVisible(false);
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(edt.getWindowToken(), 0);
}
});
img2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v)
{
lst.setVisibility(View.GONE);
txtNew.setVisibility(View.VISIBLE);
txtSave.setVisibility(View.VISIBLE);
edt.requestFocus();
edt.setCursorVisible(true);
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(edt, InputMethodManager.SHOW_IMPLICIT);
}
});
img3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i=new Intent(ChangeFont.this, EmojiTabbed.class);
startActivity(i);
}
});
img4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
lst.setVisibility(View.GONE);
savelist.setVisibility(View.VISIBLE);
txtNew.setVisibility(View.GONE);
txtSave.setVisibility(View.GONE);
edt.setCursorVisible(false);
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(edt.getWindowToken(), 0);
}
});
img5.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i=new Intent(ChangeFont.this, Share.class);
startActivity(i);
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_change_font, menu);
return false;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
switch (item.getItemId()) {
// Respond to the action bar's Up/Home button
case android.R.id.home:
Intent i=new Intent(this, Home.class);
NavUtils.navigateUpTo(this, i);
return true;
}
return super.onOptionsItemSelected(item);
}
}
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
if (i == KeyEvent.KEYCODE_BACK) {
//back button key up
}
return super.onKeyUp(keyCode, event);
}
yourControl.setOnClickListener(new OnClickListener() {
public void onClick(View view) {
// your code
}
});
List<Key> keys = getKeyboard().getKeys();
for (Key key : keys) {
if (key.codes[0] == 65) { //A
} }