android-Android 在XML文件中控件监听,在Activity中实现不了,有异常IllegalStateException

问题描述

Android 在XML文件中控件监听,在Activity中实现不了,有异常IllegalStateException
  1. activity_main.xml

android:id="@+id/btLogin"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="登陆"
android:layout_alignParentRight="true"
android:onClick="login"
/>

  1. Activity代码

public class MainActivity extends Activity {
EditText etUserName = null;
EditText etPassword = null;
CheckBox cb = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

    etUserName = (EditText) findViewById(R.id.etUserName);
    etPassword = (EditText) findViewById(R.id.etPassword);
    cb = (CheckBox) findViewById(R.id.cb);
}

public void login(View view){
    String userName = etUserName.getText().toString().trim();
    String password = etPassword.getText().toString().trim();
    if(TextUtils.isEmpty(userName)||TextUtils.isEmpty(password)){
        Toast.makeText(this, "用户名或密码不能为空", Toast.LENGTH_SHORT).show();
    } else {
        //判断用户是否记住密码
        if(cb.isChecked()){
            //保存用户名密码
            Log.i("tag", "需要记住密码");
        }
        //登陆发送消息到服务器,服务器验证是否正确
        if("zhangsan".equals(userName)&&"123".equals(password)){
            Toast.makeText(this, "登陆成功", Toast.LENGTH_SHORT).show();
        } else {
            Toast.makeText(this, "登陆失败,用户名或密码错误", Toast.LENGTH_SHORT).show();
        }
    }
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

}

log中的不知道怎么复制上来----04-14 20:56:37.910: E/AndroidRuntime(1142): java.lang.IllegalStateException: Could not find a method login(View) in the activity class com.example.login.MainActivity for onClick handler on view class android.widget.Button with id 'btLogin'

解决方案

在xml中
在对应要监听的控件中做如下操作
android:onClick="selftDestruct"
................../>
在Activity中声明selftDestruct(View)方法,要用public修饰
即如:
public void selftDestruct(View view){
//这里就是监听要操作的代码

}

解决方案二:

android1.6以上才能使用,并且只能给Button控件使用,好像是这样的。你检查看看,我看没什么错误。

时间: 2025-01-19 19:05:17

android-Android 在XML文件中控件监听,在Activity中实现不了,有异常IllegalStateException的相关文章

android中在Layout布局文件中添加控件ID,在Activity中findViewById找不到

        一直用着好好的eclipse开发android的应用,突然新建的项目中发现在Layout布局文件中控件ID在R中不能自动生成了.然后在Eclipse中通过Project->Clean操作之后在R中就生成了控件的ID,这样也太麻烦了.突然想到前几天做个项目需要把eclipse中的自动构建取消掉了,然后目前就不能自动生成了,需要手动操作,在eclipse中设置自动构建就好了,具体操作Project->Build Automatically.在build automatically出

Android编程解析XML文件的方法详解【基于XmlPullParser】

本文实例讲述了Android编程解析XML文件的方法.分享给大家供大家参考,具体如下: 前言 在学习Android的Framework层源码时,Android大量的使用XmlPullParser来解析xml文件的源码.因此,这里也顺道介绍一下XmlPullParser的使用. XML XML(eXtensible Markup Language)中文名为可扩展标记语言.标记指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种信息的文章等. 用途 XML设计用了传送及携带数据信息,

Android实现在xml文件中引用自定义View的方法分析

本文实例讲述了Android实现在xml文件中引用自定义View的方法.分享给大家供大家参考,具体如下: 在xml中引用自定义view 方法一: <view class="com.test.copytext.CopyText" android:layout_width="fill_parent" android:layout_height="wrap_content" /> 方法二: <view class="com.

在android上的XML文件,怎么样从远程服务器上获取

问题描述 在android上的XML文件,怎么样从远程服务器上获取 需要在远程服务器上读取XML文件,然后再修改本地android上的数据.我用XmlPullParser读取数据. XmlPullParser users; try { URL xmlUrl = new URL(""http://xx.xx.xx.xx/1.xml""); users = XmlPullParserFactory.newInstance().newPullParser(); users

android编程之XML文件解析方法详解(附源码)_Android

本文实例讲述了android编程之XML文件解析方法.分享给大家供大家参考,具体如下: 在android开发中,经常用到去解析xml文件,常见的解析xml的方式有一下三种:SAX.Pull.Dom解析方式.最近做了一个android版的CSDN阅读器,用到了其中的两种(sax,pull),今天对android解析xml的这三种方式进行一次总结. 今天解析的xml示例(channels.xml)如下: <?xml version="1.0" encoding="utf-8

android TypedArray 读取xml文件

问题描述 android TypedArray 读取xml文件 我用TypedArray 读取xml文件,其中有一个标签为"@string/XXXX"的形式. 我希望得到的内容为"@string/XXXX"的字符串,而不是@string/XXXX所指向的资源. 希望各位大牛解答一下. 解决方案 http://jingyan.baidu.com/article/7c6fb4287dee3780642c90b0.html

android项目出错-求助,为什么android项目的xml文件的webview标签的android id报错

问题描述 求助,为什么android项目的xml文件的webview标签的android id报错 求助,为什么android项目的xml文件的webview标签的android id报错 解决方案 报什么错,是不是id重复了 解决方案二: 贴出页面可好.凑足十个字 解决方案三: 我感觉你的id重复了,你看看红字是不是两行

android编程之xml文件读取和写入方法_Android

本文实例讲述了android编程之xml文件读取和写入方法.分享给大家供大家参考.具体分析如下: 一.环境: 主机:WIN8 开发环境:Eclipse 二.说明: 1.打开sd卡中的xml文件,如果不存在,这新建一个,并写入默认配置 2.读取xml文件 三.xml文件格式: <?xml version="1.0" encoding="UTF-8" standalone="true"?> -<config> <titl

android编程之xml文件读取和写入方法

本文实例讲述了android编程之xml文件读取和写入方法.分享给大家供大家参考.具体分析如下: 一.环境: 主机:WIN8 开发环境:Eclipse 二.说明: 1.打开sd卡中的xml文件,如果不存在,这新建一个,并写入默认配置 2.读取xml文件 三.xml文件格式: <?xml version="1.0" encoding="UTF-8" standalone="true"?> -<config> <titl