zoukankan      html  css  js  c++  java
  • 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));
            
        }

      效果如下:

      

      

  • 相关阅读:
    Server Tomcat v8.0 Server at localhost failed to start.的解决方法
    使用quartz实现定时器功能
    使用SpringMVC自带的@Scheduled完成定时任务
    springMVC中不通过注解方式获取指定Service的javabean
    java set初始化问题
    一个粗糙的分页
    eclipse下maven springMVC 整合 mybatis
    联合分布(二):联合分布
    联合分布(一):什么是概率分布
    mysql:启动服务时遇到的问题
  • 原文地址:https://www.cnblogs.com/lwchehe/p/6072735.html
Copyright © 2011-2022 走看看