首页 > 技术文章 > Android之activity初讲

lgk1002 2016-11-17 20:16 原文

  前天我们已经成功创建了第一个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路上努力奔跑,各位大神多多指教喔!

 

推荐阅读