Android基础_软件的国际化 Acitivity(七)

软件的国际化

在不同的地区显示不同的语言
在value中做文章
美国:
创建values-en-rUS文件夹
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_name"></string>
    <string name="action_settings">Settings</string>
    <string name="hello_world">us</string>
</resources>
中国:
创建values-zh-rCN文件夹
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_name"></string>
    <string name="action_settings">Settings</string>
    <string name="hello_world">中国</string>
</resources>

Acitivity

    activity的创建
    /* 1.创建一个MyActivity并继承于Activity
     * 2.实现oncreate()并调用setContentView(R.layout.my_activity)
     *          创建mmyactivity
     * 3.在androidmanifest的application中注册
     * 4.创建一个intent 类
     *      new Intent(context,MyActivity.class);
     * 5.调用 startActivity(intent);
     *      startActivity(intent);
     * */

页面的数据传递

    页面的数据传递
        /*所有的key都应该使用静态变量来传递*/
    /*Intent的另一个作用,传递数据
     * 1.intent.putExtra(key,value);
     * 2.在另一个activity中
     *      1.intent = getIntent();
     *      2.intent.get相应类型Extra(key,defaultValue);
     * */
    /*传递对象
     * 1.创建该类并实现 serializable;
     * 2.intent.putExtra(key,对象);
     * 3.(User)intent.getSerializableExtra("user");
     * */
    /*传递Bundle
     * 1.创建一个Bundle类
     *   2.bundle.put对应类型(String,对应类型);
     * 3.intent.putExtra(name,bundle);
     * 4.intent.getBundleExtra("hehe");
     *   5.bundle.get对应类型(name);
     * */

显式意图和隐式意图

    /* 1.在manifest中创建对应的data属性
     * 2.litent.setDataAndType(uri,type);
     *      uri = Uri.parse(网址);
     *      type="类型/类型"
     *      
     * 3.intent.setData(uri);
     *   intent.setType("text/html");
     *   结果不正常
     *   
     *   作用:用于启动其他应用
     *   
     *   选择:只启用本身应用就显示
     *      想启动其他应用就隐士
     * */
    private void init3() {
        Intent intent = new Intent();
        Uri uri = Uri.parse("https://www.520it.com:8080/android/test");
        intent.setDataAndType(uri, "text/html");
        startActivity(intent);
    }

    /*
     * 显式启动:在启动的过程中知道要启动的对象
     * 隐式启动:
     * 1.调用intent的无参构造器
     * 2.给intent设置动作的条件
     *      1.intent的setAction("condition");
     * 3.在androidmanifest中给对应的activity设置intent-filter /action/cate  
     *      注意只要配置了一个action就必须配置一个categorydefault
     *      存在两个符合条件的会弹出选择框
     *      不存在符合条件的会报出异常   
     * 4.可以设置category筛选,可以有多个
     *      intent.addCategory();
     */
    private void init() {
        Intent intent = new Intent();
        intent.setAction("condition");
        startActivity(intent);
    }

获取页面的返回值

    /*打开一个新界面,并获取新界面的返回值
     *  1.startActivityforresult(); 
     *  2.在页面中返回返回值
     *      serResult(code,intent);
     *          intent.putExtra(key,value);
     *  3.切记一定要在返回结束后 finish();>>关闭当前页面
     *  4.获取新页面的返回值,实现onactivityResult();
     * */
    public void sexy(View v){
        Intent intent = new Intent(this,Sexy_Activity.class);
        startActivityForResult(intent, CHOOSE_SEXY);
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (data!=null) {       
            if (requestCode==CHOOSE_ICON) {             
                int id = data.getIntExtra("icon", R.drawable.ic_launcher);
                Log.v("meeeeeee", "s"+id);
                iv.setImageResource(id);
            }
            else if (requestCode==CHOOSE_SEXY) {
                String sexy = data.getStringExtra("sexy");
                tv.setText(sexy);
            }
        }
        super.onActivityResult(requestCode, resultCode, data);
    }

SharePreference

    /*事务的特点:循环时只要有一个步骤失败了,那么所有的步骤都不会成功:事务的回滚
     * 1.获取sharepreference
     *      getSharePreference(key,mode);
     * 2.获取编辑器
     *  sp.edit();
     * 3.存数据
     *  edit.putXxx();
     * 4.编辑器提交数据
     *  edit.commit();
     * 
     * 1.获取sp
     * 2.获取keyvalue
     *  sp.getXxx(Key)
     * */
    @Override
    protected void onDestroy() {
        super.onDestroy();
        Log.v("meeeeeee", "销毁");
        String content =mContent.getText().toString();
        if(!TextUtils.isEmpty(content)){
            SharedPreferences sp = getSharedPreferences("name",  MODE_PRIVATE);
            Editor edit = sp.edit();
            edit.putString("key", content);
            edit.commit();
        }
    }

Activity的生命周期

    /*Activity的生命周期
     * 1.oncreat()创建
     * 2.onstart()显示
     * 3.onresume()获得焦点
     * 4.onpause()失去焦点
     * 5.onstop()关闭页面
     * 6.ondestroy()销毁
     * */
    /*异常状态下Activity的生命周期
     * onDestory之前>>onSaveInstanceState
     * onCreate
     * onStart
     * onRestoreInstaceState
     * */

横竖屏切换

    /*ctrl+f11横竖屏切换
     * 1.横竖屏切换的时候会重新调用声明周期
     *      1.强制不重新调用生命周期
     *      在androidmanifest中activity中
     *      添加configchanges属性orientation
     * 2.横竖屏的模式
     *      1.强制
     *      在androidmanifest中activity中
     *      添加screenorientation属性
     *      landscape横屏 portrait竖屏
     *      2.自动根据屏幕切换
     * */

接收打入电话的广播

    /*创建一个广播接收者:应用不需要运行,只要有电话打进来,该方法就会被调用,
     * 1.创建一个类继承于BroadcastReceiver,重写onreceiver
     * 2.在manifest中注册
     * 3.在manifest中指定创建intent-filter
     *      name:NEW_OUTGOING_CALL
     * 4.配置使用权限process_outgoing_call
     * */
     配置权限和注册广播:
     <uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"/>
             <receiver android:name="com.example.PhoneReceiver" >
            <intent-filter>
                <action android:name="android.intent.action.NEW_OUTGOING_CALL"/>
            </intent-filter>
        </receiver>

SD安装事件的广播接收者

public class SdCardReceiver extends BroadcastReceiver {
    /*在创建广播接收者的基础上
     * 1.在intentfilter中添加<data android:scheme="file"/>
     * 2.判断安装还是卸载了
     *      1.自定义的action名称
     *      2.系统确定的action名称
     * */
    @Override
    public void onReceive(Context context, Intent intent) {
        String action = intent.getAction();
        if (action.equals("android.intent.action.MEDIA_MOUNTED")) {
//          安装时候的动作
        }else if (action.equals(Intent.ACTION_MEDIA_UNMOUNTED)) {
//          卸载的时候的动作
            Log.v("meeeeeee", "已卸载");
        }
    }
}
注册:
        <receiver android:name="com.example.SdCardReceiver">
            <intent-filter >
                <action android:name="android.intent.action.MEDIA_MOUNTED"/>
                <action android:name="android.intent.action.MEDIA_UNMOUNTED"/>
                <data android:scheme="file"/>
            </intent-filter>
        </receiver>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值