Android 笔记3

Intent 的四个重要属性:Action、Data、Catagory、Extras


  • Action:Action 属性的值为一个字符串,它代表了系统中已经定义的一系列常用的动作,通过setAction()方法或在清单文件AndroidManifest.xml中设置
  • Data: Data 通常是URL格式定义的操作数据。例如:tel:// 通过setData()方法设置
  • Category:Category 属性通常用于指定当前动作Action被执行的环境,通过addCategory() 设置
  • Extras: Extras 属性主要用于传递目标组件所需要的额外的数据,通过putExtras()方法设置
Action 的使用方法

  • 主Activity
package com.example.androidtest;

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

public class MainActivity extends Activity {

    final static String LLP_ACTION = "com.example.action.LLP_ACTION";
    final static String LLP_CATEGORY = "com.example.category.LLP_CATEGORY";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button send = (Button)findViewById(R.id.read);
        send.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Intent intent = new Intent();
                intent.setAction(MainActivity.LLP_ACTION);
                intent.addCategory(MainActivity.LLP_CATEGORY);
                startActivity(intent);
            }
        });
    }
}


 

  • 接收Activity 在 Androidanifest.xml中的配置
<activity android:name="com.example.androidtest.Receive">
    <intent-filter  >
        <action android:name="com.example.action.LLP_ACTION"/>
        <category android:name="com.example.category.LLP_CATEGORY"/>
        <category android:name="android.intent.category.DEFAULT"/>
    </intent-filter>
</activity>

 


Style 样式

  • Android 的样式资源放在 /res/valus 目录下,样式资源的根元素是resources…/元素,该元素内可以包含多个style…/元素,每个style…/元素定义一个样式,style…/元素指定如下两个属性:

    1. name:指定样式的名称
    2. parent:指定样式所继承的父样式,当继承某个父样式时,该样式将会获得父样式汇总完全的全部格式。当然,当前样式也可以覆盖父样式中的中指定的格式。style…/元素内部可包含多个item…/元素,每个item…/元素定义一个格式项
  • xml 代码如下:

<resources xmlns:android="http://schemas.android.com/apk/res/android">
    <style name="style1">
        <item name="android:textSize">20sp</item>
        <item name="android:textColor">#00d</item>
    </style>
    <style name="style2">
        <item name="android:background">#ee6</item>
        <item name="android:padding">8dp</item>
        <item name="android:textColor">#000</item>
    </style>
</resources>

<!--  布局文件代码  -->
<!--  指定使用style的代码  -->
<EditText 
        android:id="@+id/edit2"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="second"
        style="@style/style2"
/>


主题资源 Theme


  • 主题资源theme和样式style的代码格式一样,可以用在同一个xml文件中
  • 代码如下:
<style name="LlpTheme">
        <!-- 设置没有标题 -->
        <item name="android:windowNoTitle">true</item>
        <!-- 设置全屏 -->
        <item name="android:windowFullscreen">true</item>
        <!-- 设置边框,window_boder 文件放在 drawable 目录下 -->
        <item name="android:windowFrame">@drawable/window_boder</item>
        <!-- 设置背景 -->
        <item name="android:windowBackground">@drawable/actionbar_camera_icon</item>
</style>


  • window_boder 文件,位于drawable目录下
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" >

    <!-- 设置填充颜色 -->
    <solid android:color="#0fff" />
    <!-- 设置四周的内边框 -->
    <padding
        android:bottom="7dp"
        android:left="7dp"
        android:right="7dp"
        android:top="7dp" />
    <!-- 设置边框 -->
    <stroke
        android:width="10dip"
        android:color="#f00" />
</shape>


 


使用自定义的主题:

AndroidManifest文件中的application中加入如下代码:

 <application 
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/LlpTheme" >
...
 </application>

 

  • 如果只想要对某一个Activity使用某个主题,则在AndroidManifest文件中Activity中设置

<!-- 使用自带的主题 -->
<activity android:theme="@android:style/Theme.Dialog">
...
</activity>

 


主题继承
  • Android的主题同样支持继承,如果开发过程中还想利用某个主题,然后对它的局部进行修改,则可以通过继承系统主题来是实现自定义主题
<style name="LlpTheme" parent="@android:style/Theme.Dialog">
...
</style>

 


SharedPreferences 用法

SharedPreferences preferences;
SharedPreferences.Editor editor;
preferences = getSharedPreferences("example", MODE_PRIVATE);
editor = preferences.edit();
//获取数据
count = preferences.getInt("counter", 0);
//上传数据
editor.putInt("counter", ++count);
editor.putInt("date_mounth", date_mounth);
editor.commit();


Android MySql 用法

SQLiteDatabase db;
//新建数据库
db = SQLiteDatabase.openOrCreateDatabase(this.getFilesDir().toString()+ "/llp.db3", null);
try 
{
    insertData(db, "月份:" + date_mounth, "使用短信数量: " + 0 + "  条");
} 
catch (SQLiteException se)
{
    // 执行DDL创建数据表
    db.execSQL("create table news_inf(_id integer primary key autoincrement,"
    + " news_title varchar(50),"
    + " news_content varchar(255))");
    // 执行insert语句插入数据
    insertData(db, "月份:" + date_mounth, "使用短信数量: " + 0 + "  条");
}
private void insertData(SQLiteDatabase db, String get_mounth,String get_counter) 
{
    // 执行插入语句
    db.execSQL("insert into news_inf values(null , ? , ?)", new String[] {get_mounth, get_counter });
}
private void updateData(SQLiteDatabase db, String get_mounth,String get_counter) 
{
    ContentValues values = new ContentValues();
    int result = db.update("news_inf", values, "news_title=?",new String[] { get_mounth });
}
//复写onDestory函数关掉数据库
@Override
public void onDestroy() 
{
    super.onDestroy();
    if (db != null && db.isOpen())
     {
        db.close();
    }
}

Android 短信监听

// 监听发送的短信
private final class SmsObserver extends ContentObserver {
    public SmsObserver(Handler handler) {
        super(handler);
    }
    //检测到短信就回调用onChange 函数
    public void onChange(boolean selfChange) 
    {
        ContentResolver resolver = getContentResolver();
        // 查到发出的短信,
        Uri uri = Uri.parse("content://sms/outbox");
        Cursor cursor = resolver.query(uri, new String[] { "date",
                "address", "body" }, null, null, "_id desc limit 1");
        flag = flag_new;
        flag_new = cursor.moveToNext();
        boolean te1 = fg;
        // 如果上升沿检测到有短信发出
        fg = ((!flag) && (flag_new));
        boolean te2 = fg;
        fg_more = (!te1) && (te2);
    }
}



Android 应用程序优先级


  • 一个应用程序的优先级等同于它优先级最高的组件的优先级
    当两个应用程序有相同的优先级时,处于较低优先级且运行时间最长的进程将会首先被终止
  • 进程的优先级也收到进程间依赖性的影响,如果一个应用程序yi8lai与第二个应用程序所提供的服务或者内容提供者,那么第二个应用程序至少会拥有与它所支持的这个应用程序相同的优先级

Android R.java 文件介绍

  • R.java 文件中默认有attrdrawablelayoutstring等色哥静态内部类,每个静态内部类分别对应着一种资源,如layout静态内部类对应着layout中的接界面文件,其中每个静态内部类中的静态常量分别定义为一条资源标识符,如下:

 

//下面对应着的是layout目录下的main.xml文件
public static final int main = 0x7f030000;

  • 资源文件只能以小写字母下划线做首字母,随后的名字中只能出现[a-z0-9_] 这些字符,否则R.java文件不会自动更新,并且eclipse会提示错误
  • 当开发者在res/目录中任何一个子目录中添加相应类型的文件之后,ADT会在R.java文件中相应内部类中自动生成一条静态int类型的常量,对添加的文件进行索引
  • 如果在layout目录下添加一个新界面,那么在public static final class layout 中也会添加相应的静态int常量
  • 相反,我们再res目录下删除任何一个文件,其在R.java文件中对应的记录会被ADT自动删除
  • R.java文件除了自动标示资源的索引功能外,如果res目录中的某个资源在应用中没有被使用到,在该应用被编译的时候系统就不会把对应的资源编译到该应用的apk包中,节省资源

通过 R.java 文件来引用到所需要的资源


  • 在 java 程序中应用资源
    1. java程序中应用资源
      • 按照java的语法来引用即 R.resource_type.resource_name
      • 注意:resource_name 不需要文件的后缀名
      • Android系统本身自带了很多资源可以引用,只是需要在前面加上 Android. 以申明来自Android系统,即Android.R.resource_type.resource_name
    2. xml文件中引用资源
      • xml文件中一般是通过@drawable/icon的方式获取的,其中@代表R.java类,drawable代表的是R.java中的静态内部类drawable,/icon代表静态内部类drawable中的静态属性icon
      • 如果访问的是Android系统自带的文件,则要添加Android:,如下:
      • 在布局文件中当我们需要为一些组件添加Id属性作为标识@+id/string_name,其中“+”表示在R.java的名为Id的内部类中添加一条常量名为string_name的记录
android:textColor="@android:color/red"


Android笔记系统是一种可以帮助用户记录、整理和分享笔记的应用程序。以下是一些常见的Android笔记系统的特点和功能: 1. 笔记编辑:大多数Android笔记系统都提供了基本的文本编辑功能,用户可以输入、编辑和保存笔记。一些系统还允许用户插入图片、附件和链接等元素,以丰富笔记内容。 2. 分类和标签:许多Android笔记系统允许用户将笔记进行分类和标签,以便更好地组织和查找。这有助于用户根据主题、日期或其他标准将笔记分组,以便快速找到所需的资料。 3. 笔记共享:一些Android笔记系统允许用户将笔记分享到社交媒体平台或与其他人共享。用户可以选择将笔记以链接、邮件或其他形式发送给朋友或同事,以便他们能够方便地查看和评论笔记。 4. 搜索功能:许多Android笔记系统提供强大的搜索功能,用户可以根据关键词、标签或分类快速找到所需的笔记。 5. 提醒和日历集成:一些Android笔记系统与日历应用程序集成,允许用户设置提醒,以便在特定日期或时间提醒用户查看或更新笔记。 6. 云同步:大多数Android笔记系统都支持云同步功能,用户可以将笔记存储在云端,并在多个设备上访问。这有助于用户在不同设备之间同步笔记,并确保数据的安全性和可访问性。 7. 多平台支持:一些Android笔记系统还支持在多个平台上使用,包括iOS、Windows和Mac等。这为用户提供了更多的灵活性和选择。 总之,Android笔记系统为用户提供了一个方便、高效的方式来记录、整理和分享笔记。它们提供了各种功能和工具,以帮助用户更好地组织和查找信息,并与其他人共享和协作。选择一个适合自己的Android笔记系统,可以帮助您更有效地管理您的学习、工作或个人笔记
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值