Dialog、SharedPreferences、内部存储

来源:互联网 发布:淘宝怎么弄限时促销 编辑:程序博客网 时间:2024/06/06 04:44

一、Dialog
setitems(数组的资源id或者是字符串类型数组,每项Item的点击事件); 普通列表

 public void showCommonListDialog(){        AlertDialog.Builder builder=new AlertDialog.Builder(this);        builder.setTitle("设置字体颜色");        builder.setIcon(R.mipmap.ic_launcher);        //setItems(表示展示到列表中的数组的资源id或者是字符串类型的数组,表示点击列表中item的点击事件)        builder.setItems(R.array.colors_name, new DialogInterface.OnClickListener() {            //int which 表示点击item的下标            @Override            public void onClick(DialogInterface dialog, int which) {                switch (which){                    case 0:                        tv.setTextColor(Color.RED);                        break;                    case 1:                        tv.setTextColor(Color.GREEN);                        break;                    case 2:                        tv.setTextColor(Color.BLUE);                        break;                }            }        });        builder.create().show();    }

setAapter(ListAdapter接口 SimpleAdapter,每项Item的点击事件); 适配器列表

 public void showAdapterListDialog(){        AlertDialog.Builder builder=new AlertDialog.Builder(this);        builder.setTitle("系统设置");        List<Map<String,Object>> list=new ArrayList<>();        //分别获取设置名称和图片的数组        String[] settings_name=getResources().getStringArray(R.array.setting_names);        String[] settings_images=getResources().getStringArray(R.array.setting_image);        for(int i=0;i<settings_images.length;i++){            Map<String,Object> map=new HashMap<>();            map.put("settingName",settings_name[i]);            //根据图片名称获取图片资源id            //getIdentifier(资源的名称,表示资源的类型,资源的包名)根据资源的名称和类型获取资源对应的资源id            int imageid=getResources().getIdentifier(settings_images[i],                    "drawable",getPackageName());            map.put("settingImage",imageid);            list.add(map);        }        SimpleAdapter adapter=new SimpleAdapter(this,list,R.layout.list_item,                             new String[]{"settingName","settingImage"},                             new int[]{R.id.tv,R.id.iv});        //setAdapter(表示需要展示到列表中的适配器,表示点击item的单击事件)        builder.setAdapter(adapter, new DialogInterface.OnClickListener() {            @Override            public void onClick(DialogInterface dialog, int which) {                Intent intent=null;                switch (which){                    case 0://wifi                        intent=new Intent(Settings.ACTION_WIFI_SETTINGS);                        break;                    case 1://声音                        intent=new Intent(Settings.ACTION_SOUND_SETTINGS);                        break;                    case 2:                        intent=new Intent(Settings.ACTION_DATE_SETTINGS);                        break;                }                startActivity(intent);            }        });        builder.create().show();    }

setSingleChoseItems(数组的资源id或者是字符串类型的数组 cursor,默认选中item的下标 都未选中-1,每项Item的点击事件); 单选列表

/*    单选列表对话框     */    public void showSingleChoseDialog(){        AlertDialog.Builder builder=new AlertDialog.Builder(this);        builder.setTitle("设置字体大小");        //获取字号具体大小的数组  10 20 30        final String[] fontSize=getResources().getStringArray(R.array.font_size);        //setSingleChoiceItems(表示单选列表的数据源 字符串类型的数组  数组的资源id  adapter cursor        // 表示当前默认选中的item的下标 如果没有默认选中指定-1  单击监听)        builder.setSingleChoiceItems(R.array.font_name, -1, new DialogInterface.OnClickListener() {            @Override            public void onClick(DialogInterface dialog, int which) {                tv.setTextSize(Float.parseFloat(fontSize[which]));            }        });        builder.setPositiveButton("确定",null);        builder.create().show();    }

setMuliteChoseItems(数据源,boolean类型的数组 要求与数据源长度一致 表示item的选中状态 true选中
false未选中,都选item中的监听事件);

 /*    多选列表对话框     */    public void showMutiChoseDialog(){        AlertDialog.Builder builder=new AlertDialog.Builder(this);        builder.setTitle("选择爱好");        final String[] hobbys=getResources().getStringArray(R.array.hobbys);//        boolean[] checkedItems=new boolean[hobbys.length];//fasle false false        boolean[] checkedItems={true,false,true};        //setMultiChoiceItems(表示多选列表的数据源 数组的资源id 字符串数组 cursor,        // 表示默认选中item boolean类型的数组 true表示选中 false表示未选中 null 表示默认都未选中)        builder.setMultiChoiceItems(R.array.hobbys, checkedItems, new DialogInterface.OnMultiChoiceClickListener() {            @Override            public void onClick(DialogInterface dialog, int which, boolean isChecked) {                if(isChecked){                    Toast.makeText(MainActivity.this,hobbys[which],Toast.LENGTH_SHORT).show();                }            }        });        builder.create().show();    }

setCustomTitle(View)设置自定义dialog的标题视图
setView(View) 设置自定义dialog的内容视图

二、SharedPrefences

  • Sharedprefence 存储方式 共享参数
  • 1.Sharedprefence文件存储以key-value形式存储成xml文件
  • 2.操作Sharedprefence文件本质上就是在读写xml文件 只不过api中进行了封装
  • 3.Sharedprefence主要适合存储简短的配置信息
  • 4.Sharedprefence可存储的数据类型 6
  • String int float long boolean Set<String>
  • 5.Sharedprefence文件存储的位置
  • data/data/应用程序包名/shared_prefs/xxxx.xml

    写入:
    SharedPreferences prefences=getSharedPreferences(filename,mode);
    SharedPreferences prefences=getPreferences(mode);

    SharedPreferences.Editor editor=prefences.edit();

    editor.putXX(key,value);

    editor.commit();

    读取:
    SharedPreferences prefences=getSharedPreferences(filename,mode);
    SharedPreferences prefences=getPreferences(mode);

    prefences.getXX(key)
    Map

0 0
原创粉丝点击