android编程实现按钮事件
来源:互联网 发布:网络用语ac是什么意思 编辑:程序博客网 时间:2024/06/09 17:39
这几天多次使用按钮事件,在此总结几种常见的实现方法
在实验之前研读了以下博客
《Android按钮单击事件的四种常用写法总结》
《Button 点击事件onclick实现的四种方式》
《Button点击事件的三种实现方式》
《外部类监听事件的点击事件》
第一种,内部匿名类
这种按钮只能点击一次
控件属性:
<Button android:id="@+id/b01" android:layout_width="300dp" android:layout_height="150dp" android:layout_gravity="center" android:text="@string/b01" android:background="@color/colorGreen" />
一个简单的按钮控件,id为b_01,位置位于屏幕中央,背景我自定义青绿色,文字内容为<string name="b01">内部匿名类</string>
实现:
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.setContentView(R.layout.test_activty); Button button1 = (Button) findViewById(R.id.b01); //从R中找到b01的资源 button1.setOnClickListener(new View.OnClickListener(){//监听参数为匿名类 @Override public void onClick (View v){ Toast.makeText(MainActivity.this,"success",Toast.LENGTH_LONG).show();//点击按钮会有toast弹出说明事件发生 } } ); }}
效果:
第二种:内部类
控件属性:
<Button android:id="@+id/b02" android:layout_width="300dp" android:layout_height="150dp" android:layout_gravity="center" android:text="@string/b02" android:background="@color/colorRed" />
与第一个按钮比,id改b02,颜色改为红色,文字内容<string name="b02">内部类</string>
实现:
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.setContentView(R.layout.test_activty); Button button1 = (Button) findViewById(R.id.b02); button1.setOnClickListener(new Buttonc()); } private class Buttonc implements View.OnClickListener { public void onClick(View v) { Toast.makeText(MainActivity.this, "aaaa", Toast.LENGTH_LONG).show(); } }}
效果:
6.15日补充
内部类可以用switch选择R.id来触发多个按钮不同事件
控件属性:略
实现:
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity02); Log.i("Activity02", "onCreate()"); Button button1=(Button)findViewById(R.id.button1); Button button2=(Button)findViewById(R.id.button2); button1.setOnClickListener(this); } @Override public void onClick(View v){ switch (v.getId()){ case R.id.button1: Intent intent=new Intent(); intent.setClassName("cn.itcast.activity","cn.itcast.activity.Activity01"); startActivity(intent); break; case R.id.button2: Toast.makeText(this,"123",Toast.LENGTH_LONG); break; } }
第三种:外部类
控件属性:
<Button android:id="@+id/b03" android:layout_width="300dp" android:layout_height="70dp" android:layout_gravity="center" android:text="@string/b03" android:background="@color/colorYellow" />
改id改颜色
实现
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.setContentView(R.layout.test_activty); Button button1 = (Button) findViewById(R.id.b03); Buttonc bbuttonc=new Buttonc(); button1.setOnClickListener( new Buttonc() { public void onClick(View v) { Toast.makeText(MainActivity.this,"cccc",Toast.LENGTH_LONG).show(); } } ); }} class Buttonc implements View.OnClickListener { public void onClick(View v) { }}
监听类写在mainactivty外面,且在定义里无法使用toast
效果
第四种:activty直接触发
控件:<Button
android:id="@+id/b04"
android:layout_width="300dp"
android:layout_height="70dp"
android:layout_gravity="center"
android:text="@string/b04"
android:background="@color/colorBlue"
/>
实现:
public class MainActivity extends AppCompatActivity implements View.OnClickListener{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.setContentView(R.layout.test_activty); Button button1 = (Button) findViewById(R.id.b04); button1.setOnClickListener(this);} public void onClick(View v) { Toast.makeText(MainActivity.this,"终于写完了",Toast.LENGTH_LONG).show(); } }
直接在oncreate外面写一个onclick,不经过任何类
效果:
- android编程实现按钮事件
- 自定义按钮实现Android 返回按钮事件
- 自定义按钮实现android 返回按钮 事件
- android按钮事件点击的实现
- Android中fragment实现按钮点击事件
- Android studio实现按钮的点击事件
- Android 按钮的点击事件实现1
- 【android】:android实现监听多个按钮事件
- android 点击事件 按钮事件
- android滑动按钮事件
- android滑动按钮事件
- android滑动按钮事件
- Android 按钮事件
- android滑动按钮事件
- android开发:按钮事件
- android 按钮点击事件
- Android按钮单击事件
- Android按钮事件监听
- 设计模式之访问者模式(Visitor)
- 安装openni2驱动xtion
- JSP 中 pageEncoding和contentType 的区别
- Map集合中value()方法与keySet()、entrySet()区别
- “/r/n”回车与换行
- android编程实现按钮事件
- 第一章总结
- laravel5.4用163邮箱发送邮件给qq邮箱遇到的问题
- Java多线程操作案例-生产者和消费者实现
- 关于&& || ! 遇到的一个问题
- Java Web基础之文件下载
- JSON basics
- Git使用:代码提交、同步,创建分支等
- POJ 2033 Alphacode 笔记