《第一行代码》学习笔记——探究活动(未完待续)

《第一行代码》学习笔记

一、探究活动
  1. 手动创建活动,不勾选 Generate Layout File 和 Launcher Activity
手动创建活动
  1. 重写onCreate()方法(每个活动都应该重写)
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
}
  1. 新建 layout 布局,并在活动中加载布局
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    // 加载布局
    setContentView(R.layout.first_layout);
}
  1. AndroidManifest.xml文件中注册

    

注:活动注册声明标签要放在标签内

  1. 配置主活动

    
    
        
        
            
            
        
    

  1. 使用按钮触发 Toast 提醒
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.first_layout);
    Button button1 = (Button) findViewById(R.id.button_1);
    button1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Toast.makeText(FirstActivity.this,
                "Button 1 被点击", Toast.LENGTH_SHORT).show();
        }
    });
}
  • 调用方法:
    • 通过静态方法makeText()创建出一个 Toast 对象
    • 调用show()将 Toast 显示出来
  • Toast 参数表
类型 描述
参数一 Context Toast 要求的上下文,一般为活动本身
参数二 text 要显示的文本内容
参数三 显示的时长,有两个内置常量可以选择,分别为:Toast.LENGTH_SHORTTOAST.LENGTH_LONG
  1. res下新建 menu目录,并创建main.xml文件
    新建菜单文件

代码如下:


    
    


之后在FirstActivity.java中重写onCreateOptionsMenu()onOptionsItemSelected()方法

public boolean onCreateOptionsMenu(Menu menu) {
    /**
     * getMenuInflater()得到对象,再调用inflate()就可以创建菜单
     * 返回true表示允许创建的菜单显示出来
     * 返回false则菜单无法显示
     */
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}
inflate()参数表(当有两个参数时)
类型 描述
参数一 layoutID 需要加载的xml中layout资源的ID
参数二 root 需要附加到resource资源文件的根控件
public boolean onOptionsItemSelected(MenuItem item) {
    /**
     * 菜单响应事件
     * 调用item.getItemID()来判断某个菜单项
     */
    switch (item.getItemId()) {
        case R.id.add_item:
            Toast.makeText(this, "You clicked Add", Toast.LENGTH_SHORT).show();
            break;
        case R.id.remove_item:
            Toast.makeText(this, "You clicked Remove", Toast.LENGTH_SHORT).show();
            break;
        default:
    }
    return true;
}
  1. 销毁活动
  • 方式一:使用返回键
  • 方式二:调用finish()方法
button2.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        finish();
    }
});
  1. 使用显式 Intent 启动活动
步骤:
  • 新建一个活动SecondActivity,不要勾选 Launcher Activity 选项

  • 将新创建的布局文件的布局改为LinearLayout

  • 定义一个按钮

  • FirstActivity.java中为按钮添加点击事件

button4.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
        // 启动目标活动
        startActivity(intent);
    }
});
Intent()参数表
类型 描述
参数一 Context 要求提供一个启动活动的上下文
参数二 Class 指定想要启动的目标活动
  1. 使用隐式 Intent 启动活动
原理

​ 不直接指定某一个活动,而是指定更为抽象的 action 和 category 等信息,之后由系统分析并找出可以响应这个隐式 Intent 的活动去启动

步骤
  • AndroidManifest.xml 中为SecondActivity配置的内容

    
    
    
    

  • FirstActivity中添加按钮点击事件
button5.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        Intent intent = new Intent("cn.lhlyblog.firstcode2_1.ACTION_START");
        startActivity(intent);
    }
});

你可能感兴趣的:(《第一行代码》学习笔记——探究活动(未完待续))