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

来源:互联网 发布:域名交易流程 编辑:程序博客网 时间:2024/06/05 10:34

软件的国际化

在不同的地区显示不同的语言在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>
原创粉丝点击