android-Android自定义Button的OnKeyDown方法没反应

问题描述

Android自定义Button的OnKeyDown方法没反应

代码如下:
自定义Button类
public class MyButton extends Button{
public MyButton(Context context,AttributeSet set) {
super(context,set);
}

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    super.onKeyDown(keyCode,event);
    TextView tv = (TextView) findViewById(R.id.aa);
    tv.setText("123232323");
    Log.v("111","2222");
    return super.onKeyDown(keyCode, event);
}

}

界面xml代码:
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:orientation="vertical"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">

<TextView
    android:id="@+id/aa"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />
<com.example.cg.view.MyButton
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />

解决方案

onKeyDown方法监听的是按下系统的Home键,后退键等的监听,
你这是要实现点击按钮改变另外一个TextView的文字吧,直接写个Button再setOnClickListener不行吗?
或者说非要自定义一个Button的话在构造方法中调用setOnClickListener(this),然后在你的MyButton类中实现OnClick方法也可以,不过没什么必要

解决方案二:

public class ****Acticity extends Activity {
@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

MyButton mybutton = new MyButton(this);

mybutton.setFocusable(true);

setContentView(mybutton);

}
}


点击没效果,是因为Activity也有onKeyDown,你在view中设置了onKeyDown,点击时,系统不知道要响应哪一个。你给button添加一个焦点。

解决方案三:

http://www.apkbus.com/forum.php?mod=viewthread&tid=251929&extra=page%3D1&_dsign=2a4e40c3

解决方案四:

Activity中提供了这个方法,可以让你重写。这个基于回调的事件,只有当按下键盘键,并且别的地方没有处理,才会传递给activity。一般的button是不会响应这个事件的,明白了吧。

解决方案五:

我猜你想写的是onTouchEvent

时间: 2024-08-01 20:24:37

android-Android自定义Button的OnKeyDown方法没反应的相关文章

Android中自定义一个View的方法详解_Android

本文实例讲述了Android中自定义一个View的方法.分享给大家供大家参考,具体如下: Android中自定义View的实现比较简单,无非就是继承父类,然后重载方法,即便如此,在实际编码中难免会遇到一些坑,我把自己遇到的一些问题和解决方法总结一下,希望对广大码友们有所帮助. 注意点① 用xml定义Layout时,Root element 最好使用merge 当我们需要继承一个布局比较复杂的ViewGroup(比较多的是LinearLayout.RelativeLayout)时,通常会用xml来

Android中自定义一个View的方法详解

本文实例讲述了Android中自定义一个View的方法.分享给大家供大家参考,具体如下: Android中自定义View的实现比较简单,无非就是继承父类,然后重载方法,即便如此,在实际编码中难免会遇到一些坑,我把自己遇到的一些问题和解决方法总结一下,希望对广大码友们有所帮助. 注意点① 用xml定义Layout时,Root element 最好使用merge 当我们需要继承一个布局比较复杂的ViewGroup(比较多的是LinearLayout.RelativeLayout)时,通常会用xml来

Android shape自定义button样式

我们今天来说一说怎么样让你的Button更炫一些,如果把这个添加到你的游戏里,你就会让你的游戏更吸引玩家,android为我们提供了太多难以想象的效果,那么我们就来看看这个效果怎么样来实现吧,我们还是先来看看效果图: 完事我们就来看看代码吧.让我们尽情的想象我们的界面有多么的炫吧. Java代码: <?xml version="1.0" encoding="utf-8"?> < selector //view的各种状态(正常无焦点,焦点,oncli

Android实现自定义带文字和图片Button的方法

  本文实例讲述了Android实现自定义带文字和图片Button的方法.分享给大家供大家参考.具体分析如下: 在Android开发中经常会需要用到带文字和图片的button,下面来讲解一下常用的实现办法. 一.用系统自带的Button实现 最简单的一种办法就是利用系统自带的Button来实现,这种方式代码量最小.在Button的属性中有一个是drawableLeft,这个属性可以把图片设置在文字的左边,但是这种方式必须让icon的背景色是透明的,如果icon的背景色不是透明的话,会导致点击按钮

Android实现自定义带文字和图片Button的方法_Android

本文实例讲述了Android实现自定义带文字和图片Button的方法.分享给大家供大家参考.具体分析如下: 在Android开发中经常会需要用到带文字和图片的button,下面来讲解一下常用的实现办法. 一.用系统自带的Button实现 最简单的一种办法就是利用系统自带的Button来实现,这种方式代码量最小.在Button的属性中有一个是drawableLeft,这个属性可以把图片设置在文字的左边,但是这种方式必须让icon的背景色是透明的,如果icon的背景色不是透明的话,会导致点击按钮时i

android 自定义 View 中 onKeyDown 没反应

我写了一个自定义的view,里面用handler做了一个循环,在循环的过程中,我点击左右键怎么没有反应 我想要的结果是:循环打印 begin 和 handler, 当按下左右键是打印:Left 和 Right 我把我的工程附件上来了 请兄弟们指出原因,给出解决办法 下面是我的代码: TestHandler 是一个activity package cn.com.android; import android.app.Activity; import android.os.Bundle; publi

Android自定义View的实现方法,带你一步步深入了解View

转载请注明出处:http://blog.csdn.net/guolin_blog 如果说要按类型来划分的话,自定义View的实现方式大概可以分为三种,自绘控件.组合控件.以及继承控件.那么下面我们就来依次学习一下,每种方式分别是如何自定义View的. 一.自绘控件 自绘控件的意思就是,这个View上所展现的内容全部都是我们自己绘制出来的.绘制的代码是写在onDraw()方法中的,而这部分内容我们已经在 Android视图绘制流程完全解析,带你一步步深入了解View(二) 中学习过了. 下面我们准

getview方法不执行- android listview自定义adapter,getview方法不显示

问题描述 android listview自定义adapter,getview方法不显示 adapter的getCount值不为0,但是不执行getview方法,在ErrorLog中打印出来的log在下面贴出来了,希望路过的大牛们帮忙看看 解决方案 问题找到了,是我的listView的布局控件不正确,已经改好了 解决方案二: android listView 重写Adapter方法getView的性能优化问题 解决方案三: 空指针异常,找找在哪个位置. 解决方案四: log和问的错没什么关系 解

android:自定义button继承自button, 调用setTextcolor无效

问题描述 android:自定义button继承自button, 调用setTextcolor无效 现在有个需求是当button失去焦点时, text文字的颜色会变化. 1. 在attrs.xml中我声明了两个属性normalColor和selectedColor, 2. 然后在自定义button类中: TypedArray typeArray = mContext.obtainStyledAttributes(attrs, R.styleable.LtButton); if (null !=