第一行代码Android学习(十二)

原创 2016年08月30日 11:26:53

第一行代码Android学习:第十二部分主要涉及到全局获取context的技巧、使用Intent传递对象、定制自己的日志工具

  • AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.dyhdm_12_00test"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="17" />

    <application
        android:name="com.example.dyhdm_12_00test.MyApplication"
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.dyhdm_12_00test.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name="com.example.dyhdm_12_00test.Main2Activity"
            android:label="@string/title_activity_main2" >
        </activity>
    </application>

</manifest>
  • activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >

    <Button
        android:id="@+id/bt"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:text="@string/hello_world" />

</RelativeLayout>
  • activity_main2.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".Main2Activity" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:text="@string/hello_world2" />

</RelativeLayout>
  • MyApplication.java
/*
 * @Title:  MyApplication.java
 * @Description:  TODO 
 * @author:  张志安
 * @date:  2016-8-30 上午10:12:46
 * 
 */
package com.example.dyhdm_12_00test;

import android.app.Application;
import android.content.Context;

/**
 * TODO 定制一个自己的Application,为了个在项目的任何地方都能获取到Context.
 *      注意要修改AndroidManifest.xml
 *      获取Context:MyApplication.getContext()
 * @author  张志安
 * @date:  2016-8-30 上午10:12:46
 */
public class MyApplication extends Application {
    public static Context context;

    @Override
    public void onCreate() {
        context = getApplicationContext();
    }

    public static Context getContext(){
        return context;
    }
}
  • Person.java
/*
 * @Title:  Person.java
 * @Description:  TODO 
 * @author:  张志安
 * @date:  2016-8-30 上午10:25:06
 * 
 */
package com.example.dyhdm_12_00test;

import java.io.Serializable;

/**
 * TODO 实现序列化接口的Person类 所有的Person对象都可以序列化
 * 
 * @author 张志安
 * @date: 2016-8-30 上午10:25:06
 */
public class Person implements Serializable {

    private String name;
    private String age;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAge() {
        return age;
    }

    public void setAge(String age) {
        this.age = age;
    }

}
  • LogUtil.java
/*
 * @Title:  LogUtil.java
 * @Description:  TODO 
 * @author:  张志安
 * @date:  2016-8-30 上午10:34:55
 * 
 */
package com.example.dyhdm_12_00test;

import android.util.Log;

/**
 * TODO 定制自己的日志工具
 *      打印一行DEBUG级别的日志可以写成LogUtil.d("zza","123")
 *      只需要修改LEVEL的值就可以自由控制打印行为
 * 
 * @author 张志安
 * @date: 2016-8-30 上午10:34:55
 */
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);
        }
    }
}
  • MainActivity.java
package com.example.dyhdm_12_00test;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends Activity {

    private Button bt;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // 测试MyApplication.getContext()
        Toast.makeText(MyApplication.getContext(), "Test", Toast.LENGTH_SHORT)
                .show();
        // 测试使用Intent传递对象
        bt = (Button) findViewById(R.id.bt);
        bt.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                Person p = new Person();
                p.setAge("21");
                p.setName("zza");
                Intent intent = new Intent(MyApplication.getContext(),
                        Main2Activity.class);
                intent.putExtra("data", p);
                startActivity(intent);
            }
        });
        // 测试定制的日志工具
        LogUtil.i("zza", "123");
    }

}
  • Main2Activity.java
package com.example.dyhdm_12_00test;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.Toast;

public class Main2Activity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // 获取通过intent传递的对象
        Person p = (Person) getIntent().getSerializableExtra("data");
        setContentView(R.layout.activity_main2);
        Toast.makeText(MyApplication.getContext(),
                "Name:" + p.getName() + " Age:" + p.getAge(),
                Toast.LENGTH_SHORT).show();
    }
}

代码下载地址

版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

Android 播放视频 VideoView 《第一行代码》学习笔记

视频播放需要使用VideoView类来实现,以下是一些VideoView的常用方法: 方法名 功能描述 setVideoPath() 设置要播放的视频文件位置 start() 开始...

第一行代码Android学习(五)

第一行代码Android学习:第五部分主要实现了一个简易版的新闻应用,其中主要涉及到fragment的操作

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

数据存储之SQLite 数据库存储——第一行代码Android学习笔记

SQLite 是一款轻量级的关系型数据库, 它的运算速度非常快,占用资源很少。存储大量复杂的关系型数据的时候使用。 一、创建数据库 SQLiteOpenHelper 帮助类, 借助这个类就可...

《Android第一行代码》学习笔记

1、查看当前界面处于哪个Activity。很多时候当我们接手一个较为复杂的源代码的时候,里面会有很多个Acvitity。此时我们往往很难从中找出哪个界面对应哪个源码,这无疑会降低我们的开发效率。下面介...

第一行代码Android学习(四)

第一行代码Android学习:第四部分主要涉及到碎片的简单使用、动态添加碎片、在碎片中模拟返回栈、碎片和活动之间相互通信和碎片的生命周期

《第一行代码》学习笔记--Android入门(一、二、三)

1.1  一个Android 工程的内容 src:放所有Java代码的地方 gen:R.java文件 不要手动修改 bin:编译过程文件 libs:第三方Jar包,目录下的Jar包会被自动添加到构建路...

《第一行代码》学习笔记--Android入门(五、六)

五、广播 1.标准广播(Normal)---异步执行,各接收器同时收到,无法截断 有序广播(Ordered)--同步执行,有先后顺序,优先级高的可以截断 2.建立broadcasts receiver...

第一行代码Android学习(十)

第一行代码Android学习:第十部分主要涉及到Android多线程编程和Service的用法

《第一行代码-Android》学习笔记(二十一)WebView控件总结【修改】

1.加载页面1.1.web资源 webview.loadUrl("http://192.168.1.100:8080/Web/index.html") 1.2.本地资源本地文件使用:webView.l...

数据存储之SharedPreferences存储——第一行代码Android学习笔记

SharedPreferences 是使用键值对的方式来存储数据的。SharedPreferences 文件都是存放在/data/data/name>/shared_prefs/目录下的。 ...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)