android点击事件的监听_Toast

Android中点击事件的监听共有四种方式:

布局文件代码:

<?xml version="1.0"encoding="utf-8"?>

<RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"

   android:layout_width="match_parent"

   android:layout_height="match_parent" >

   <TextView

       android:id="@+id/text"

       android:layout_width="wrap_content"

       android:layout_height="wrap_content"

       android:text="点我"

       />

 

</RelativeLayout>

第一种:内部类

import android.os.Bundle;

import android.app.Activity;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.TextView;

import android.widget.Toast;

public class MainActivity extends Activity{

         TextViewtext;

         @Override

         protectedvoid onCreate(Bundle savedInstanceState) {

                   super.onCreate(savedInstanceState);

                   setContentView(R.layout.click);

                   //找到文本控件

                   text=(TextView)findViewById(R.id.text);

                   //添加点击事件

                   text.setOnClickListener(newMyListener());

         }

         privateclass MyListener implements OnClickListener{ 

                    

       @Override 

       public void onClick(View v) { 

           // TODO Auto-generated method stub 

          Toast.makeText(MainActivity.this,"我被点击",0).show();

       } 

         

   } 

 

}

 

第二种:匿名内部类

public class MainActivity extends Activity{

         TextViewtext;

         @Override

         protectedvoid onCreate(Bundle savedInstanceState) {

                   super.onCreate(savedInstanceState);

                   setContentView(R.layout.click);

                   //找到文本控件

                   text=(TextView)findViewById(R.id.text);

                   //添加点击事件

                   text.setOnClickListener(newOnClickListener() {

                           

                            @Override

                            publicvoid onClick(View v) {

                                     Toast.makeText(MainActivity.this,"我被点了",0).show();

                            }

                   });

         }

}

第三种:实现接口

import android.os.Bundle;

import android.app.Activity;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.TextView;

import android.widget.Toast;

public class MainActivity extends Activityimplements OnClickListener{

         TextViewtext;

         @Override

         protectedvoid onCreate(Bundle savedInstanceState) {

                   super.onCreate(savedInstanceState);

                   setContentView(R.layout.click);

                   //找到文本控件

                   text=(TextView)findViewById(R.id.text);

                   //添加点击事件

                   text.setOnClickListener(this);

         }

         @Override

         publicvoid onClick(View v) {

                   Toast.makeText(this,"我被点了",0).show();

         }

}

第四种:

在布局文件中添加点击事件对应的方法,当前布局文件代码为:

<?xml version="1.0"encoding="utf-8"?>

<RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"

   android:layout_width="match_parent"

   android:layout_height="match_parent" >

   <TextView

       android:id="@+id/text"

       android:layout_width="wrap_content"

       android:layout_height="wrap_content"

       android:text="点我"

       android:onClick="click"

       />

 

</RelativeLayout>

Java源文件代码为:

import android.os.Bundle;

import android.app.Activity;

import android.view.View;

import android.widget.TextView;

import android.widget.Toast;

public class MainActivity extends Activity{

         TextViewtext;

         @Override

         protectedvoid onCreate(Bundle savedInstanceState) {

                   super.onCreate(savedInstanceState);

                   setContentView(R.layout.click);

                   //找到文本控件

                   text=(TextView)findViewById(R.id.text);

         }

         private void click(View v){

                   Toast.makeText(this,"我被点了",0).show();

         }

}

此时运行Android项目,点击点我按钮,无任何响应;不是我们的代码有问题,而是,TextView控件默认是未获得焦点的,当我们将他换为Button事件就会得到响应。

public class MainActivity extends Activity{

         Buttontext;

         @Override

         protectedvoid onCreate(Bundle savedInstanceState) {

                   super.onCreate(savedInstanceState);

                   setContentView(R.layout.btn);

                   //找到文本控件

                   text=(Button)findViewById(R.id.btn);

         }

         publicvoid btnclick(View v){

                   Toast.makeText(this,"我被点了",0).show();

         }

}

此时的代码,会是点击事件得到响应,但注意,事件响应方法的,访问权限修饰符,为public最为合适。

 

 

 

 

补充:

当我们在开发时我们需要判断用户是否在EditText上输入内容,当我们使用user_name.getText().toString().trim();来获得在Edittext上输入的内容进行判断是否为null,或为””,时来进行响应的时间响应是,是判断不了得,无效的,

这时我们可以通过

//匿名内部类,的添加监听的方式

       login_btn.setOnClickListener(new OnClickListener() {

                           

                            @Override

                            publicvoid onClick(View v) {

                                     Stringstr=user_name.getText().toString().trim();

                                     if(user_name.length()==0){

                                               Toast.makeText(MainActivity.this,"xxxx",0).show();

                                     }else{

                                               Toast.makeText(MainActivity.this,str,0).show();

                                     }

                            }

                   });

这种方式来实现,不同的状态的事件响应

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值