孙肖宁

安卓中的按钮的四种点击事件
安卓按钮的四大点击事件整理首先写一下xml文件<Button android:id="@+...
扫描右侧二维码阅读全文
28
2017/09

安卓中的按钮的四种点击事件

安卓按钮的四大点击事件整理
首先写一下xml文件

<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/editText1"
    android:text="拨号" />

<Button
    android:id="@+id/button2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/button1"
    android:layout_marginTop="14dp"
    android:text="button1" />

<Button
    android:id="@+id/button3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/button2"
    android:layout_alignBottom="@+id/button2"
    android:layout_marginLeft="26dp"
    android:layout_toRightOf="@+id/button2"
    android:text="button2" />

<Button
    android:id="@+id/button4"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/button3"
    android:layout_alignBottom="@+id/button3"
    android:layout_marginLeft="18dp"
    android:layout_toRightOf="@+id/button3"
    android:text="button3" />

<Button
    android:onClick="click"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignRight="@+id/button3"
    android:layout_below="@+id/button3"
    android:layout_marginTop="62dp"
    android:text="test" />

点击事件
【1】定义一内部类去实现按钮的点击事件

public class MainActivity extends ActionBarActivity {

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //加载一个布局
        setContentView(R.layout.activity_main);
        //找到按钮
        Button btn_call = (Button) findViewById(R.id.button1);
        //给button按钮设置一个点击事件
        btn_call.setOnClickListener(new MyClickListener());
    }
    //定义一个类去实现   按钮需要的接口类型
    private class MyClickListener implements OnClickListener{
        
        //当按钮被点击的时候调用
        @Override
        public void onClick(View v) {
            System.out.println("我被点击了");
            }
        }
    }    
}

【2】通过匿名内部类去实现

public class MainActivity extends ActionBarActivity {
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //加载一个布局
        setContentView(R.layout.activity_main);
        //找到按钮
        Button btn_call = (Button) findViewById(R.id.button1);
        //给button按钮设置一个点击事件
        btn_call.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                System.out.println("按钮被点击了");
            }
        });
    }    
}

【3】让当前类实现OnClickListener接口类型(用于布局里面有很多按钮需要被点击的时候)

public class MainActivity extends ActionBarActivity implements OnClickListener {    
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // 加载一个布局
        setContentView(R.layout.activity_main);
        
        // 找到按钮
        Button btn_call = (Button) findViewById(R.id.button1);
        Button btn_call1 = (Button) findViewById(R.id.button2);
        Button btn_call2 = (Button) findViewById(R.id.button3);
        Button btn_call3 = (Button) findViewById(R.id.button4);
        // 给button按钮设置一个点击事件
        // 按钮的第三种点击事件
        btn_call.setOnClickListener(this);
        btn_call1.setOnClickListener(this);
        btn_call2.setOnClickListener(this);
        btn_call3.setOnClickListener(this);
    }

    // 当点击按钮的时候执行
    public void onClick(View v) {
        // 具体判断点击的哪个按钮
        switch (v.getId()) {
        case R.id.button1:
            System.out.println("1按钮被点击了");
            break;
        case R.id.button2:
            System.out.println("2按钮被点击了");
            break;
        case R.id.button3:
            System.out.println("3按钮被点击了");
            break;
        case R.id.button4:
            System.out.println("4按钮被点击了");
            break;

        default:
            break;
        }
    }
}

【4】在按钮的布局上加上一个onClick属性 在Activity里面定义一个方法 方法名和属性名相同(适合自己做一些demo)

public class MainActivity extends ActionBarActivity  {

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // 加载一个布局
        setContentView(R.layout.activity_main);
    }
    //声明一个方法  方法名和你要点击的这个按钮  在布局中的onClick属于一样
    public void click(View v) {
        System.out.println("按钮被点击了");
    }

    }

}







Last modification:September 28th, 2017 at 08:02 pm
If you think my article is useful to you, please feel free to appreciate

Leave a Comment