当前位置:首页 » 安卓系统 » android获取按键

android获取按键

发布时间: 2022-09-19 13:49:19

A. 在android中怎样获取Button上的值放到Textview中

具体操作如下:

Button bt =(Button)findViewById(R.id.button1);

TextView tx=(TextView)findViewById(R.id.textView1);

tx.setText(bt.getText());

getText()就是获取按钮上的文字,在TextView中显示出来

B. android如何获得所按下按键编号

在Activity中重写onKeyDown方法即可,当按钮按下时会回调onKeyDown方法。

1. 以下是java代码:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
return super.onKeyDown(keyCode, event);
}

2. onKeyDown方法中传递了两个参数 keyCode及event,其中 keyCode就是按钮的编号。

3. int code = keyCode 即可判断是哪个按钮按下了。

C. 请问下Android4.0怎么捕捉按键(返回键),哪个好心人可以指导下

这个很简单,需要一个回调函数onKeyDown,在你按返回键就会调用这个函数。具体代码如下
public boolean onKeyDown(int keyCode, KeyEvent event){
if (keyCode == KeyEvent.KEYCODE_BACK) {//假如是点击的返回键 Intent intent=new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent);//实现点击home键的效果
return true;// 返回true表示你已经完成了对返回键的处理,不需要系统再为你处理,
//假如你返回false就点击返回就依然会像你没写这段代码一样得效果
} } return super.onKeyDown(keyCode, event);

}

D. 如何获取android手机三个硬按键的状态信息

处于系统安全性,android阻止了onkey里面home和power键的截获
只能捕获到back键

因此home和power只能通过其它办法截获了,

1.@Override
2. public boolean onKeyDown(int keyCode, KeyEvent event) {
3. if (keyCode == KeyEvent.KEYCODE_HOME) {
4. return true;
5. } else {
6. return super.onKeyDown(keyCode, event);
7. }
8. }
9.
10.@Override
11. public void onAttachedToWindow() {
12. this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
13. super.onAttachedToWindow();
14. }
这个办法虽然能捕获到home按键,但是按home时,不会回到android主屏幕

最好的办法还是通过广播去监听了, 去网上查查home截获资料大堆

E. 如何捕获android系统按键事件

下面是android学习手册中关于按键的介绍,例子,文档、源码都可以看,360手机助手中下载

在Android系统中,存在多种界面事件,如点击事件、触摸事件、焦点事件和菜单事件等,在这些界面事件发生时,Android界面框架调用界面控件的事件处理方法对事件进行处理。
Android系统界面事件的传递和处理遵循以下规则。
·如果界面控件设置了事件监听器,则事件将先传递给事件监听器。
·如果界面控件没有设置事件监听器,界面事件则会直接传递给界面控件的其他事件处理方法。
·即使界面控件设置了事件监听器,界面事件也可以再次传递给其他事件处理方法。
·是否继续传递事件给其他处理方法是由事件监听器处理方法的返回值决定的。
·如果监听器处理方法的返回值为true,表示该事件已经完成处理过程,不需要其他处理方法参与处理过程,这样事件就不会再继续进行传递。
·如果监听器处理方法的返回值为false,则表示该事件没有完成处理过程,或需要其他处理方法捕获到该事件,事件会被传递给其他的事件处理方法。
在MVC模型中,控制器根据界面事件(UI Event)类型不同,将事件传递给界面控件不同的事件处理方法。
·按键事件(KeyEvent)将传递给onKey()方法进行处理。
·触摸事件(TouchEvent)将传递给onTouch()方法进行处理。
下面以EditText控件中的按键事件为例,说明Android系统界面事件传递和处理过程。
假设EditText控件已经设置了按键事件监听器,当用户按下键盘上的某个按键时,控制器将产生KeyEvent按键事件。Android系统会首先判断EditText控件是否设置了按键事件监听器,因为EditText控件已经设置按键事件监听器OnKeyListener,所以按键事件先传递到监听器的事件处理方法onKey()中,事件能够继续传递给EditText控件的其他事件处理方法,完全根据onKey()方法的返回值来确定:如果onKey()方法返回false,事件将继续传递,这样EditText控件就可以捕获到该事件,将按键的内容显示在EditText控件中;如果onKey()方法返回true,将阻止按键事件的继续传递,这样EditText控件就不能够捕获到按键事件,也就不能够将按键内容显示在EditText控件中。
Android界面框架支持对按键事件的监听,并能够将按键事件的详细信息传递给处理方法。为了处理控件的按键事件,先需要设置按键事件的监听器,并重载onKey()方法,示例代码如代码清单1所示。
代码清单1 设置按键事件的监听器,并重载onKey()方法
entryText.setOnKeyListener(new OnKeyListener(){
@Override
public boolean onKey(View view, int keyCode, KeyEvent keyEvent) {
//过程代码……
return true/false;
}
第1行代码是设置控件的按键事件监听器。
第3行代码的onKey ()方法中的参数:第1个参数View表示产生按键事件的界面控件;第2个参数keyCode表示按键代码;第3个参数KeyEvent则包含了事件的详细信息,如按键的重复次数、硬件编码和按键标志等。
第5行代码是onKey()方法的返回值:返回true,阻止事件传递;返回false,允许继续传递按键事件。
KeyEventDemo是一个说明如何处理按键事件的示例。
KeyEventDemo用户界面如图1所示。

图1 KeyEventDemo用户界面
从图5-27中可以看出,最上方的EditText控件是输入字符的区域,中间的CheckBox控件用来控制onKey()方法的返回值,最下方的TextView控件用来显示按键事件的详细信息,包括按键动作、按键代码、按键字符、UNICODE编码、重复次数、功能键状态、硬件编码和按键标志。
界面的XML文件的代码如代码清单2所示
代码清单2 界面XML文件
<EditText android:id="@+id/entry"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</EditText>
<CheckBox android:id="@+id/block"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="返回true,阻止将按键事件传递给界面元素" >
</CheckBox>
<TextView android:id="@+id/label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="按键事件信息" >
</TextView>
在EditText中,当任何一个键按下或抬起时,都会引发按键事件。为了能够使EditText处理按键事件,需要使用setOnKeyListener ()方法在代码中设置按键事件监听器,并在onKey()方法中添加按键事件的处理过程,代码如代码清单3所示。
代码清单3 setOnKeyListener()
entryText.setOnKeyListener(new OnKeyListener(){
@Override
public boolean onKey(View view, int keyCode, KeyEvent keyEvent) {
int metaState = keyEvent.getMetaState();
int unicodeChar = keyEvent.getUnicodeChar();
String msg = "";
msg +="按键动作:" + String.valueOf(keyEvent.getAction())+" ";
msg +="按键代码:" + String.valueOf(keyCode)+" ";
msg +="按键字符:" + (char)unicodeChar+" ";
msg +="UNICODE:" + String.valueOf(unicodeChar)+" ";
msg +="重复次数:"+ String.valueOf(keyEvent.getRepeatCount())+" ";
msg +="功能键状态:" + String.valueOf(metaState)+" ";
msg +="硬件编码:" + String.valueOf(keyEvent.getScanCode())+" ";
msg +="按键标志:" + String.valueOf(keyEvent.getFlags())+" ";
labelView.setText(msg);
if (checkBox.isChecked())
return true;
else
return false;
}
在上述代码中,第4行代码用来获取功能键状态。功能键包括左Alt键、右Alt键和Shift键,当这3个功能键被按下时,功能键代码metaState值分别为18、34和65;但没有功能键被按下时,功能键代码metaState值分别为0。
第5行代码获取了按键的Unicode值,而在第9行中,将Unicode转换为了字符,显示在TextView中。
第7行代码获取了按键动作,0表示按下按键,1表示抬起按键。第7行代码获取按键的重复次数,但当按键被长时间按下时,则会产生这个属性值。
第13行代码获取了按键的硬件编码,各硬件设备的按键硬件编码都不相同,因此该值一般用于调试。
第14行获取了按键事件的标志符。

F. android 开发 如何获取全局按键记录

通过键盘监听来实现:
Activity中重写这个方法:
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
//记住这个按键
}
}然后就通过keyCode来判断按下的是哪个键。这样做应该是可以的。

G. android:viewpager里如何获取其子界面的按钮并为其添加监听器啊

方法,在viewpager的adapter里面有一个方法可以获取到当前的view,如下:
1 2 3 4 5 6 7 8 9 10 private View mCurrentView; @Override public void setPrimaryItem(ViewGroup container, int position, Object object) { mCurrentView = (View)object; } public View getPrimaryItem() { return mCurrentView; }

ViewPager的adapter通过setPrimaryItem方法设置当前显示子view.
将其保存下来就可以在后面通过自定义的getPrimaryItem来获取到当前子view了。
装监视器:把view装进list,list加载到pageAdapter,给viewpager设置监听,监听的就是全部view,要实现这种图片轮播(广告栏效果),就是一句关键代码viewPager.setCurrentItem(msg.arg1);,利用handler和thread,每隔几秒改变item的下标。
viewPager.setAdapter(new MyAdapter());
viewPager.setOnPageChangeListener(onPageChangeListener);

H. Android如何在fragment的xml中添加按钮,在MainActivity获取按钮

不建议直接获取和直接操作,会造成内存泄露的。
你应该写清楚获取这个button要做什么,然后通过接口来实现Activity和fragment之间的通信

热点内容
编程软件基础培训 发布:2025-01-11 12:20:20 浏览:287
imeet网站服务器地址 发布:2025-01-11 12:15:35 浏览:331
ps缓存时间 发布:2025-01-11 11:55:36 浏览:865
云服务器容灾 发布:2025-01-11 11:51:40 浏览:682
phparraysplice 发布:2025-01-11 11:51:40 浏览:320
android学习源码 发布:2025-01-11 11:26:23 浏览:413
服务器都坏了如何恢复 发布:2025-01-11 11:24:04 浏览:354
微博缓存的图片能清理吗 发布:2025-01-11 11:01:49 浏览:308
文字加密器 发布:2025-01-11 11:01:08 浏览:455
vc60非静态编译 发布:2025-01-11 10:51:32 浏览:615