Android ch03 Activity_layout and Button 点击事件

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

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

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

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

  

  双击 Button 这个 按钮 会进入到 源码那里,会自动生成 有关 刚刚点击的 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);
          
    }
}

  然后 运行,加载成功

   

  到这里,我想搞事情啦,点击 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();
            }
        });
        
    }

然后 看看效果:

  

方法二:

  之前的步骤一样,差别在于,在 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));
        
    }

  效果如下:

  

  

原文地址:https://www.cnblogs.com/lwchehe/p/6072735.html