前天我们已经成功创建了第一个Android项目,如果我要把软件推荐给我的第一个用户,毫无疑问是从界面开始介绍。因为即使你的程序算法再高效,架构再出色,用户根本不会在乎这些,他们一开始只会对看到的东西感兴趣,今天我们就学习了如何更换布局(layout)。
当然今天主要讲的还是 activity 页面中 Button 按钮的一个点击事件。在 java 中 点击事件弹出消息直接在 js 中 写 alter 即可。但是在 Android 中没那么简单。昨天我们学习了 java 的内部类。在 Android 点击事件中,我们主要使用的是 匿名内部类( anonymous inner class)
因为布局(layout)属于资源文件,所以我们直接在res—>layout—>右键—>new—>others—>Android—>Android XML Layout File —> next—>填写layout名称—>Finish
下面给我们新new出的test1.xml部署一个button组件
复制我们所添加组件的id
- android:layout_width 指定了当前元素的宽度
- android:layout_height 指定了当前元素的高度
- android:text 指定了元素中显示的文字内容
- wrap_content 表示当前元素的宽、高度只要能刚好包含里面的内容就行
现在点击按钮没有任何的效果,因为我们还没有写事件,接下来就为按钮button1添加事件,有两种方法
1、MainActivity.java中添加匿名内部类
2、另写一个activity,然后再MainActivity.java中配置
通常情况下不建议在MainActivity.java写匿名内部类,因为所有的组键在MainActivity.java配置不好分析逻辑结构
下面是第二种方法MainActivity.java中写的配置及匿名内部类的注释
1 package com.example.helloworld; 2 3 import android.content.Context; 4 import android.view.View; 5 import android.view.View.OnClickListener; 6 import android.widget.Toast; 7 8 public class Btn1ClickListener implements OnClickListener{ 9 10 private Context context; 11 12 public Btn1ClickListener(Context c) { 13 this.context = c; 14 } 15 16 @Override 17 public void onClick(View arg0) { 18 Toast.makeText(context, "你很好 Android 1班", Toast.LENGTH_LONG).show(); 19 } 20 21 }
1 package com.example.helloworld; 2 3 4 import android.app.Activity; 5 import android.os.Bundle; 6 import android.view.View; 7 import android.view.View.OnClickListener; 8 import android.widget.Button; 9 import android.widget.Toast; 10 11 public class MainActivity extends Activity { 12 13 private Button btn1; 14 @Override 15 protected void onCreate(Bundle savedInstanceState) { 16 super.onCreate(savedInstanceState); 17 // setContentView(R.layout.activity_main); 18 // TextView tv1 = (TextView) this.findViewById(R.id.textView1); 19 // tv1.setText("你好,Android 1班"); 20 21 22 this.setContentView(R.layout.test);//布局layout名称 23 btn1 = (Button) findViewById(R.id.button1);//组件所代表的id 24 btn1.setText("点我咯"); 25 26 27 btn1.setOnClickListener(new Btn1ClickListener(this));//尽可能减少new代码,交给容器(后加Spring框架 28 29 /* btn1.setOnClickListener(new OnClickListener(){ 30 //匿名内部类 31 public void onClick(View v){ 32 33 Toast.makeText(MainActivity.this, "你好 Android 1班", Toast.LENGTH_LONG).show(); 34 35 } 36 });*/ 37 } 38 }
下面运行看看我们的成果吧
今天小主用的是夜神模拟器
菜鸟一枚的我,还在Android路上努力奔跑,各位大神多多指教喔!