Android系列之事件的监听

通过设计一个登录对话框掌握android系统的事件监听的几种处理方法。

具体要求如下(四种方法实现):

i. 基于事件监听内部类实现事件监听处理;

ii. 基于事件监听内部匿名类实现事件监听处理;

iii. Activity本身作为事件监听器;

iv. 直接绑定到标签;

v. 在“登录”按钮事件代码中,判断用户名和密码是否正确。

布局文件:

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"

    tools:context="com.example.ex4_15linearlayoutloginwindows.MainActivity" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"

        android:text="Please input your name!" />

    <EditText
        android:id="@+id/username"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
          android:ems="10" >

        <requestFocus />
    </EditText>

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"

        android:text="Please input your password" />

    <EditText
        android:id="@+id/password"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"

        android:ems="10"
        android:inputType="textPassword" />
    <LinearLayout 
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
         <Button
        android:id="@+id/login"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="login" />
         <Button
        android:id="@+id/cancel"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="cancel" />
    </LinearLayout>
</LinearLayout>

(1)内部类监听事件:
package com.example.project1;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class MainActivity extends Activity {
    Button button;
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        button = (Button)findViewById(R.id.login);
        button.setOnClickListener(new myclick());
    }
    public class myclick implements View.OnClickListener{
        public void onClick(View v) {
            EditText t1 = (EditText) findViewById(R.id.username);
            EditText t2 = (EditText) findViewById(R.id.password);
            String s1 =  t1.getText().toString();
            String s2 = t2.getText().toString();
            TextView tv = (TextView) findViewById(R.id.textView3);
            if(s1.equals("zhangjiangtao")&&s2.equals("111111"))
                tv.setText("login success");
            else
                tv.setText("login fail");
        }
    }
}

(2)Activity本身作为事件监听器 
package com.example.project1;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class MainActivity extends Activity implements View.OnClickListener{
    Button button;
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        button = (Button)findViewById(R.id.login);
        button.setOnClickListener((OnClickListener) this);
    }
    public void onClick(View v) {
        EditText t1=(EditText) findViewById(R.id.username);
        EditText t2=(EditText) findViewById(R.id.password);
        String s1=t1.getText().toString();
        String s2=t2.getText().toString();
        TextView tv=(TextView) findViewById(R.id.textView3);
        if(s1.equals("zhangjiangtao")&&s2.equals("111111"))
            tv.setText("login success");
        else
            tv.setText("login fail");
        }
}

(3)基于事件监听内部匿名类实现事件监听处理
package com.example.project1;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class MainActivity extends Activity {
    Button button;
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        button = (Button)findViewById(R.id.login);
        button.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                EditText t1=(EditText) findViewById(R.id.username);
                EditText t2=(EditText) findViewById(R.id.password);
                String s1=t1.getText().toString();
                String s2=t2.getText().toString();
                TextView tv=(TextView) findViewById(R.id.textView3);
                if(s1.equals("zhangjiangtao")&&s2.equals("111111"))
                    tv.setText("login success");
                else
                    tv.setText("login fail");
            }
        });
    }
}
(4)直接绑定到标签
 布局文件:
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"

    tools:context="com.example.ex4_15linearlayoutloginwindows.MainActivity" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"

        android:text="Please input your name!" />

    <EditText
        android:id="@+id/username"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
          android:ems="10" >

        <requestFocus />
    </EditText>

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"

        android:text="Please input your password" />

    <EditText
        android:id="@+id/password"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"

        android:ems="10"
        android:inputType="textPassword" />
    <LinearLayout 
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
         <Button
        android:id="@+id/login"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="login"
        android:onClick="Text" />//就是在原来的基础上加上了这句话
         <Button
        android:id="@+id/cancel"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="cancel" />
    </LinearLayout>
</LinearLayout>

JAVA文件:
package com.example.project1;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class MainActivity extends Activity {
    Button button;
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
    public void Text(View arg0) {
        // TODO Auto-generated method stub
        EditText t1=(EditText) findViewById(R.id.username);
        EditText t2=(EditText) findViewById(R.id.password);
        String s1=t1.getText().toString();
        String s2=t2.getText().toString();
        TextView tv=(TextView) findViewById(R.id.textView3);
        if(s1.equals("zhangjiangtao")&&s2.equals("111111"))
            tv.setText("login success");
        else
                tv.setText("login fail");
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值