《第一行代码》实用知识
来源:互联网 发布:富豪移民 知乎 编辑:程序博客网 时间:2024/06/15 02:32
1.基础活动类:便于知道启动是哪个活动类,其他活动类继承基类即可。
public class BaseActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.d("BaseActivity", getClass().getSimpleName()); ActivityCollector.addActivity(this); } @Override protected void onDestroy() { super.onDestroy(); ActivityCollector.removeActivity(this); }}
2. 活动管理器:管理所有的活动,便于批量销毁活动,在某个活动需要一次性退出程序的时候,调用ActivityConllector.finishAll();即可
public class ActivityCollector { public static List<Activity> activities=new ArrayList<Activity>(); public static void addActivity(Activity activity){ activities.add(activity); } public static void removeActivity(Activity activity){ activities.remove(activity); } public static void finishAll(){ for(Activity activity:activities){ if(!activity.isFinishing()){ activity.finish(); } } }}
3.启动活动的最佳方式:其他活动要启动这个类,只需要调用SecondActivity.actionStart(FirstActivity.this,"data1","data2");参数也一目了然。
public class SecondActivity extends BaseActivity { 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); }}
4.创建自定义控件:共用标题栏
标题布局title.xml,引用方式:<include layout="@layout/title",注意需要在活动中隐藏系统自带标题栏。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#333783"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/title_back" android:layout_margin="5dip" android:layout_gravity="center" android:text="Back"/> <TextView android:layout_width="0dip" android:layout_height="wrap_content" android:id="@+id/title_text" android:layout_gravity="center" android:gravity="center" android:layout_weight="1" android:text="Title Text" android:textColor="#fff" android:textSize="24sp"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/title_edit" android:layout_gravity="center" android:layout_margin="5dip" android:text="Edit"/></LinearLayout><pre name="code" class="java">public class TitleLayout extends LinearLayout { public TitleLayout(Context context,AttributeSet attrs){ super(context, attrs); LayoutInflater.from(context).inflate(R.layout.title, this); Button titleBack=(Button)findViewById(R.id.title_back); Button titleEdit=(Button)findViewById(R.id.title_edit); titleBack.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { ((Activity)getContext()).finish(); } }); titleEdit.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Toast.makeText(getContext(),"clicked Edit",Toast.LENGTH_SHORT).show(); } }); }}
界面引用自定义控件:
<com.coolweather.app.activity.TitleLayout android:layout_width="match_parent" android:layout_height="wrap_content"> </com.coolweather.app.activity.TitleLayout>
5.可以全局获得Context,Applicaton类在程序启动的时候,会自动初始化这个类。在AndroidMainfest.xml还要进行制定application的name。
public class MyApplication extends Application { private static Context context; @Override public void onCreate() { context=getApplicationContext(); } public static Context getContext(){ return context; }}
6.自定义日志类
import android.util.Log;/** * 日志类,用于应用上线之后全局控制日志输出,只需将LEVEL等于NOTHING即可停止输出日志。 * Created by yiuon on 2016/2/10. */public class LogUtil { public static final int VERBOSE=1; public static final int DEBUG=2; public static final int INFO=3; public static final int WARN=4; public static final int ERROR=5; public static final int NOTHING=6; public static final int LEVEL=VERBOSE; public static void v(String tag,String msg){ if(LEVEL<VERBOSE){ Log.v(tag,msg); } } public static void d(String tag,String msg){ if(LEVEL<=DEBUG){ Log.d(tag, msg); } } public static void i(String tag,String msg){ if(LEVEL<=INFO){ Log.i(tag, msg); } } public static void w(String tag,String msg){ if(LEVEL<=WARN){ Log.w(tag, msg); } } public static void e(String tag,String msg){ if(LEVEL<=ERROR){ Log.e(tag, msg); } }}
1 0
- 《第一行代码》实用知识
- 《第一行代码》 - 知识导图
- Android第一行代码知识总结(1)
- 《第一行代码》学后知识小总结
- 第一行代码
- 第一行代码 读后感
- 第一行代码-笔记
- 第一行代码
- 第一行代码
- 《第一行代码》读后感
- 《第一行代码》笔记
- 《第一行代码1》
- 《第一行代码》读书笔记
- 《第一行代码2》
- 第一行代码笔记
- 第一行代码读书笔记
- 自学第一行代码
- 第一行代码
- C# Graphics 放大和旋转
- Linux_Process_Management_blog
- CF#202 div2 B Color the Fence
- ListActivity类的用法
- 安卓设置videoview全屏
- 《第一行代码》实用知识
- 【linux】编译安装python3.5交互模式下方向键乱码
- Zookeeper的Paxos分布式一致性算法-类比的方式去理解
- 初见memcached
- JQuery与HTML元素的获取、设置、添加、删除
- 在子线程中如何使用Handler将一个包含对象的集合传递给主线程
- android application 属性详解
- 文章标题
- bzoj 3224 普通平衡树