ITPub博客

首页 > 应用开发 > IT综合 > 除了课堂上介绍的设置的监听器的方法,还有哪些办法实现按钮的响应?

除了课堂上介绍的设置的监听器的方法,还有哪些办法实现按钮的响应?

原创 IT综合 作者:634828354 时间:2017-04-12 20:11:17 0 删除 编辑

方法一:指定按钮功能

  1)Activity_main.xml增加两个按钮:

  <Button

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:id="@+id/button1"

        android:onClick="onClick"

        android:text="Button1"/>

  <Button

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:id="@+id/button2"

        android:onClick="onClick"

        android:text="Button2"

        android:layout_marginStart="55dp"

        android:layout_alignParentTop="true"

        android:layout_toEndOf="@+id/button1"/>

  2)修改string.xml

  <string name="button1">button1</string>

  <string name="button2">button2</string>

  3)修改MainActivity.java,增加如下内容

  Toast tst;

  public void onClick(View view){

    switch (view.getId()){

        case R.id.button1:

            tst=Toast.makeText(this,"button1",Toast.LENGTH_SHORT);

            tst.show();

            break;

        case R.id.button2:

            tst=Toast.makeText(this,"button2",Toast.LENGTH_SHORT);

            tst.show();

            break;

        default:break;

    }

  }

  总结:这种方法是在xml文件中指定按钮的onclick属性,这样点击按钮就会利用反射的方式调用对应Activity中的onClick方法

 

方法二:自定义事件

  1)增加onClick()方法

  public void onClick(View view) {

            switch (view.getId()){

                case R.id.button1:

                   tst=Toast.makeText(MainActivity.this,"button1",Toast.LENGTH_SHORT);

                    tst.show();

                    break;

                case R.id.button2:

                   tst=Toast.makeText(MainActivity.this,"button2",Toast.LENGTH_SHORT);

                    tst.show();

                    break;

                default:break;

        }

 

  2)在onCreate方法中调用onClick方法

  btn1=(Button)findViewById(R.id.button1);

  btn2=(Button)findViewById(R.id.button2);

  btn1.setOnClickListener(new clickListener());

  btn2.setOnClickListener(new clickListener());

 

方法三:

  1)重写onClick方法

  public void onClick(View view){

    switch (view.getId()){

        case R.id.button1:

            tst=Toast.makeText(MainActivity.this,"button1",Toast.LENGTH_SHORT);

            tst.show();

            break;

        case R.id.button2:

            tst=Toast.makeText(MainActivity.this,"button2",Toast.LENGTH_SHORT);

            tst.show();

            break;

        default:break;

    }

  }

  2)修改onCreate方法

  btn1=(Button)findViewById(R.id.button1);

  btn2=(Button)findViewById(R.id.button2);

  btn1.setOnClickListener(this);

  btn2.setOnClickListener(this);

 

  总结:Activity继承View.OnClickListener,由Activity实现OnClick(View view)方法,在OnClick(View view)方法中用switch-case对不同id代表的button进行相应的处理

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/30046312/viewspace-2137133/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2014-12-01

  • 博文量
    47
  • 访问量
    96789