Android ch03 Activity_layout and Button 点击事件

Android 中的界面跳转,其实就是一个个的 Activity ,下面看下怎么创建新的 Activity 布局

在项目 res 里面的  layout文件夹上右键 new -> Other -> Android文件夹 下面的 -> Android XML Layout File 

Android ch03 Activity_layout and Button 点击事件

Android ch03 Activity_layout and Button 点击事件

 

Android ch03 Activity_layout and Button 点击事件

 

 Next 之后 然后 在 File 那里写文件名称, Root Element:里选个布局 ,然后 Finish 就创建成功

Android ch03 Activity_layout and Button 点击事件

Android ch03 Activity_layout and Button 点击事件

 

    可以在 Form Widgets 中拖个 Button 按钮 过界面那里

  Android ch03 Activity_layout and Button 点击事件

  双击 Button 这个 按钮 会进入到 源码那里,会自动生成 有关 刚刚点击的 Button的界面布局代码

  Android ch03 Activity_layout and Button 点击事件

 

  然后就在 ManActivity 里加载这个资源布局 ,通过 setContentView 这个方法来加载 资源布局,传入 R.layout.test 这个布局

  R.layout.test 其实就在 之前创建在 layout 里的 xml 文件 ,这样就可以加载布局了

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
//        setContentView(R.layout.activity_main);
        setContentView(R.layout.test);
          
    }
}

  然后 运行,加载成功

   Android ch03 Activity_layout and Button 点击事件

  到这里,我想搞事情啦,点击 Button ,我发现什么效果都没,我想能和 JavaScript 一样弹出点信息出来一样,点了半天都没反应,JavaScript 有点击事件,

  这里也应该有吧,果然是有方法如下

方法一: 在 MainActivity 的方法 onCreate 里,通过 findViewById()方法找到布局里的控件,通过 Button 的 setOnClickListener() 方法传入个 

  事件监听的接口 OnClickListener 接口,这里采用的是匿名内部类的方法,实现 onClick(View v) 这个方法就可以啦

 private Button btn1;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
//        setContentView(R.layout.activity_main);
        setContentView(R.layout.test);
        btn1 = (Button) findViewById(R.id.testButton1);
        btn1.setText("点我");
        btn1.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                /**
                 * Toast 类似与弹框一样的
                 * context : 上下文,指的是 Activity,所以写 MainActivity.this 就可以了
                 * text : 文本内容
                 * duration : 时间,int 类型数值
                 */
                Toast.makeText(MainActivity.this, "你好 Android ", 1).show();
            }
        });
        
    }

然后 看看效果:

  Android ch03 Activity_layout and Button 点击事件

 

方法二:

  之前的步骤一样,差别在于,在 Button 的 setOnClickListener() 方法里传入的是一个实现类,

  新建一个 类 去实现 OnClickListener 接口 

public class Btn1ClickListener implements OnClickListener {

    private Context context;
    
    public Btn1ClickListener(Context context) {
        this.context = context;
    }
    
    @Override
    public void onClick(View v) {
        Toast.makeText(context, "你好 Android 1班", 1).show();
    }

}

  就可以在 MainActivity 里直接用了 

  protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
//        setContentView(R.layout.activity_main);
        setContentView(R.layout.test);
      /* *//**
        * 第二种方法 
        */
        btn1 = (Button) findViewById(R.id.testButton1);
        btn1.setText("点我");
        // 直接 new 个实例出来 传入 content 就可以了
        btn1.setOnClickListener(new Btn1ClickListener(this));
        
    }

  效果如下:

  Android ch03 Activity_layout and Button 点击事件