美文网首页
Android:实现Button点击事件的四种方式

Android:实现Button点击事件的四种方式

作者: __Simon__ | 来源:发表于2017-11-22 16:07 被阅读22次

    最近开始学习Android的开发,首先学习了一下在Android开发中的按钮点击事件的实现,在网上找到四种实现方式在此做一个记录,方便日后温习查看。

    方式一、匿名内部类:

    new 一个OnClickListener接口作为ButtonsetOnClickListener方法的参数

    public class MainActivity extends AppCompatActivity {
    
        Button btn1;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            btn1 = (Button)findViewById(R.id.btn1);
            // 给Button添加点击事件的第一种方式:匿名内部类
            btn1.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    Intent intent = new Intent(MainActivity.this,Example1.class);
                    startActivity(intent);
                }
            });
        }
    
    
    

    方式二、内部类:

    Button所在的class内部再建一个类ClickListener并实现OnClickListener接口。
    直接new一个ClickListener的实例作为ButtonsetOnClickListener方法的参数

    public class MainActivity extends AppCompatActivity {
        
        Button btn1;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            btn1 = (Button)findViewById(R.id.btn1);
            // 给Button添加点击事件的第二种方式:内部类
            btn1.setOnClickListener(new ClickListener());
        }
        
        class ClickListener implements View.OnClickListener {
    
            @Override
            public void onClick(View view) {
                Log.i("Info","btn1 goto next page");
                Intent intent = new Intent(MainActivity.this,Example3.class);
                startActivity(intent);
            }
        }
    }
    
    

    方式三、实现OnClickListener接口

    Button所在的class本身实现OnClickListener接口,并且作为ButtonsetOnClickListener方法的参数

    public class MainActivity extends AppCompatActivity implements View.OnClickListener{
    
        Button btn1;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            btn1 = (Button)findViewById(R.id.btn1);
            btn1.setOnClickListener(this);
        }
        // 给Button添加点击事件的第三种方式:实现OnClickListener接口
        @Override
        public void onClick(View view) {
            Log.i("Info","btn1 goto next page");
            Intent intent = new Intent(MainActivity.this,Example3.class);
            startActivity(intent);
        }
    }
    

    方式四、直接在布局文件中指定点击事件

    以上三种方式归根结底都是实现OnClickListener来监听Button的点击事件,而下面的方式是直接在布局文件中直接指定响应Button的点击事件的方法

    xml

        <Button
            android:id="@+id/btn4"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="指定点击事件"
            android:onClick="btn4Click"
            />
    

    java

    public class MainActivity extends AppCompatActivity {
        Button btn1;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
        }
        // 给Button添加点击事件的第四种方式:直接在布局文件中指定点击事件
        public void btn4Click(View view){
            Log.d("DEBUG","btn1 go to next page");
            Intent intent = new Intent(MainActivity.this,Example4.class);
            startActivity(intent);
        }
    }
    

    相关文章

      网友评论

          本文标题:Android:实现Button点击事件的四种方式

          本文链接:https://www.haomeiwen.com/subject/jutovxtx.html