on lick istener-android onClickListener问题

问题描述

android onClickListener问题

我们都知道给View及其子类设置onClickListener的时候可以使用XML或者
View.setOnClickListener方法,但当一个Activity中控件比较多的时候,统一
管理是更好的选择。让Activity实现onClickListener,重写onClick方法,然后对
参数View的ID进行判断,分别进行不同的操作。我写了一个小DEMO,但是
OnClick事件在单击Button后没有触发,求助大神。

我的XML代码:
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >

<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_centerVertical="true"
    android:layout_marginLeft="92dp"
    android:text="@string/hello_world" />

<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/textView1"
    android:layout_alignParentTop="true"
    android:layout_marginTop="32dp"
    android:text="Button" />

我的Activity代码:
package com.example.test;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends Activity implements OnClickListener {

Button btn;
TextView txt;

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    init();
}

private void init(){
    btn = (Button)findViewById(R.id.button1);
    txt = (TextView)findViewById(R.id.textView1);
}

@Override
public void onClick(View v) {
    // TODO Auto-generated method stub
    switch (v.getId()) {
    case R.id.button1:
        txt.setText("success!!");
        break;
    }
}

}

理论上单击按钮后,TextView中的文字会发生变化,但真机测试结果无反应。

解决方案

在init()中加句btn.setOnClickListener(this)就好

解决方案二:

偶一般的实现方法:先从 View.OnClickListener 派生一个类,如下:
class ButtonClick implements View.OnClickListener
{
@Override
public void onClick(View v)
{

然后设置按键:
btnDial = (Button)findViewById(R.id.btn_dial);

** btnDial.setOnClickListener(new ButtonClick());**

解决方案三:

你没有设置监听器。应该先重载监听器再寻找按钮id,然后再进行控制

解决方案四:

很明显吗?btn没设监听器,btn.setOnClickListener(this)

时间: 2024-11-01 08:37:10

on lick istener-android onClickListener问题的相关文章

Android当中跟js进行交互,实现方法的互调

今天在浏览的时候看到Android跟js的交互,就想的学习一下,上网搜了很多资料,感觉还不是太难,就自己动手试了下,结果出了很多问题 说起交互其实很简单,只是可能sdk的版本或是别的一些小问题会困扰很长时间: 这是代码: package wst.webview; import android.annotation.SuppressLint; import android.app.Activity; import android.os.Bundle; import android.view.Vie

机器学习算法的python实现之扫黄神器-朴素贝叶斯分类器的实现

1.背景 以前我在外面公司实习的时候,一个大神跟我说过,学计算机就是要一个一个贝叶斯公式的套用来套用去.嗯,现在终于用到了.朴素贝叶斯分类器据说是好多扫黄软件使用的算法,贝叶斯公式也比较简单,大学做概率题经常会用到.核心思想就是找出特征值对结果影响概率最大的项.公式如下: 什么是朴素贝叶斯,就是特征值相互独立互不影响的情况.贝叶斯可以有很多变形,这里先搞一个简单的,以后遇到复杂的再写. 2.数据集 摘自机器学习实战. [['my','dog','has','flea','problems','h

jQuery入门(4) Events

学习了jQuery的选择器,就可以针对选择的HMTL标记或是元素添加事件处理,事件包括按键,鼠标 ,单击按钮等. 下面为常见的DOM事件: 鼠标事件 键盘事件 表单事件 文档/窗口事 件 click keypress submit load dblc lick keydown change resize mouseenter key up focus scroll mouseleave   blur unload jQuery事件处理的语法 在jQuery中 ,大部分的DOM事件都有对应的jQu

安卓-android studio里OnClickListener的一个问题

问题描述 android studio里OnClickListener的一个问题 为何导入不进去? 解决方案 android.view.View.OnClickListener api:http://www.android-doc.com/reference/android/view/View.OnClickListener.html 解决方案二: 大小写错误,on修改为小写. 解决方案三: OnClickListener. 驼峰命名法哈. 解决方案四: 你把click改成Click试试

Android:OnClickListener cannot be resolved to a type

在看国外大师写的C++/C#这种语言类的书籍时,往往会对要using些什么都写的很清楚,但国内某本安卓书籍就没写这些--好吧,这些都太基础了,确实没必要写.不过我还是不知道遇到如题的问题该怎么办,于是找了下资料-- import android.view.View.OnClickListener;

android DialogInterface 和 View 中的OnClickListener冲突

问题描述 android DialogInterface 和 View 中的OnClickListener冲突 尝试用上边的解决办法,全路径引入,可是还是没有解决. 解决方案 在对话框按钮的点击事件前面加上DialogInterface ,即DialogInterface .onClickListener 解决方案二: 它们的冲突是可以用自己的命名空间区分的.就像楼上说的. 另外,onClickListener通常都是这样做, btn.setOnClickListener(new View.On

Android中button实现onclicklistener事件的两种方式_Android

复制代码 代码如下: package com.demos; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class GetScreenActivity extends Activity { private Button fi

【android乱七八糟】关于OnClickListener事件中加switch语句讨论

  是这样的,我从A这个activity中转到B这个activity中同时根据A中的点击事件传递一个相应参数key过去.   在B这个activity中取出key值.   然后B这个activity对应的界面中有一个按钮,这个按钮要添加一个事件,   处理B中按钮事件的时候要根据参数key的值调用不同的处理方法.   于是,我就在B这个activity中写了一个事件监听器,由于key可能值比较多,所以我在监听器里面加了一个switch语句来根据不同的key调用不同的函数.         Hav

Android中button实现onclicklistener事件的两种方式

复制代码 代码如下: package com.demos; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class GetScreenActivity extends Activity { private Button fi