《第一行代码(第二版)》的学习(一)
来源:互联网 发布:java自学步骤 编辑:程序博客网 时间:2024/05/18 01:37
- application中
android:supportsRtl=“true” Rtl = right - to - left
从右向左的布局;不要使用margin right 使用 margin end - ID
你需要在XML中引用一个id,就使用@id/id_name;
你需要在XML中定义一个id,就使用@+id/id_name; - 在活动中使用menu:
①res-新建menu-新建xml-编写菜单的item
②重写两个方法
onCreateOptionsMenu()
onOptionsItemSelected()
<?xml version="1.0" encoding="utf-8"?><menu xmlns:android="http://schemas.android.com/apk/res/android"><item android:id="@+id/add" android:title="add"></item><item android:id="@+id/remove" android:title="remove"></item></menu>
@Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main,menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()){ case R.id.add: Toast.makeText(this, "add", Toast.LENGTH_SHORT).show(); case R.id.remove: Toast.makeText(this, "remove", Toast.LENGTH_SHORT).show(); } return true; }
- Intent < data >标签
android:scheme 用于指定数据的协议部分,如:http、geo(显示地理位置)、tel(拨打电话)等
android:host 用于指定数据的主机名部分,如:www.baidu.com
android:port 用于指定数据的端口部分,一般紧随在主机名之后
android:path 用于指定主机名和端口之后的部分,如:一段网址中跟在域名之后的内容
android:mimeType 用于指定可以处理的数据类型,允许使用通配符的方式进行指定 - 返回键的监听back
重写onBackPressed()方法 - 生命周期
onCreate() 活动在第一次创建的时候被调用,完成 初始化操作,如:加载布局、绑定事件等
onStart() 视图由不可见变为可见
onResume() 位于返回栈的栈顶,并处于运行状态
onPause() 释放掉一些消耗CPU的资源,保存一些关键的数据,但这个方法执行的速度要快,不然会影响到新的栈顶活动的调用
onStop() 如果启动的活动是一个对话框式的活动,那么onPause()方法会得到执行,而onStop()方法不会被执行
onDestroy()
onRestart() 在活动由停止状态变为运行状态之前调用
★在onStart()方法中对资源进行加载,在onStop()方法中对资源进行释放,可以保证处于停止状态的活动不会占用过多内存 活动的启动模式
standard 系统不会在乎这个活动是否已经在返回栈中存在,每次启动都会创建该活动的一个新的实例
singleTop 在启动活动时如果发现返回栈的栈顶已经是该活动,则认为可以直接使用它,不会再创建新的活动实例
singleTask 每次启动该活动时系统首先会在返回栈中检查是否存在该活动的实例,如果发现已经存在则直接使用该实例,并把在这个活动之上的所有活动统统出栈,如果没有发现就会创建一个新的活动实例
singleInstance 在这种模式下会有一个单独的返回栈来管理这个活动,不管是哪个应用来访问这个活动,都共用的同一个返回栈,同时解决了共享活动实例的问题getClass().getSimpleName() 获取当前活动的名字
- 随时随地退出程序
import android.app.Activity;import java.util.ArrayList;import java.util.List;/** * Created by J on 2016/12/27. */public class ActivityCollector { public static List<Activity> mActivities = new ArrayList<>(); public static void addActivity(Activity activity){ mActivities.add(activity); } public static void removeActivity(Activity activity){ mActivities.remove(activity); } public static void finishAll(){ for (Activity activity:mActivities) { if (!activity.isFinishing()){ activity.finish(); } } }}
import android.app.Activity;import android.os.Bundle;import com.juice.mytreasure.utils.ActivityCollector;/** * Created by J on 2016/12/18. */public abstract class BaseActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(setView()); ActivityCollector.addActivity(this); init(); setDatas(); } protected abstract void setDatas(); protected abstract void init(); protected abstract int setView(); @Override protected void onDestroy() { super.onDestroy(); ActivityCollector.finishAll(); }}
- 启动活动的最佳写法
import android.content.Context;import android.content.Intent;import android.os.Bundle;import android.support.annotation.Nullable;import android.support.v7.app.AppCompatActivity;import com.juice.mytreasure.R;/** * Created by J on 2016/12/27. */public class SecondActivity extends AppCompatActivity { @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_intent_second); } public static void actionStart(Context context,String data1,String data2){ Intent intent = new Intent(context, SecondActivity.class); intent.putExtra("param1",data1); intent.putExtra("param2",data2); context.startActivity(intent); }}
mButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { SecondActivity.actionStart(MainActivity.this,"data1","data2"); } });
0 0
- 《第一行代码(第二版)》的学习(一)
- 《第一行代码(第二版)》学习(二)
- Android 第一行代码(第二版)学习笔记(一)
- 第一行代码(第二版)读书笔记
- 第一行代码学习笔记(一)
- 第一行代码Android学习(一)
- 第一行代码android第二版的学习
- 第一行代码第二版(郭霖著)笔记之第一章(你的第一行Android代码)
- 《第一行代码Android》(第二版)读书笔记(一):详解build.gradle文件
- 跟着第一行代码学安卓(第二版书)-1
- 《第一行代码-Android》学习笔记(一)
- 第一行代码Android学习笔记(一)activity
- 第一行代码-Android 学习笔记(一)
- 【第一行代码-Android】学习(一)及在studio的迁移(4)intent学习
- 第一行代码第二版(郭霖著)笔记之第三章(UI开发的点点滴滴)
- 第一行代码(第二版)之定制自己的日志控制工具
- Android 第一行代码(第二版)学习笔记
- Android 第一行代码(第二版)学习笔记(二)
- Java集合---LinkedList源码解析
- Http的Cache机制
- jdbc连接数据库Sql Server2012
- [ZJOI2002] 青蛙的约会
- Objective-C - A类作为B类的属性
- 《第一行代码(第二版)》的学习(一)
- 深入理解JavaScript系列(2):变量对象(Variable Object)
- Java事件处理机制(自定义事件)
- Linux磁盘管理
- JSP刷新页面的几种方法
- Git Init repository for remote terminal and change the remote master
- Java异常的栈轨迹(Stack Trace)
- 工作中用到的自定义控件
- iOS多线程 - NSThread介绍