「已注销」 2016-09-18 05:18 采纳率: 0%
浏览 1241

用SharedPreferences 保存edittext的值 的方法的使用问题 遇到一个麻烦求解决

保存listview 的 item 中的edittext的值 SharedPreferences方法的使用问题 遇到一个麻烦求解决

在adapter里面定义了静态的函数保存edittext然后再listview所在的Fragment的onPause中调用,切换fragment发现并没有读取到保存的数据,求大神帮忙解决,看一下是哪里除了问题啊。。

public class HotSpotsListAdapter extends BaseAdapter {
public static Context context;
List list;
public static EditText edt_input_1, edt_input_2, edt_input_3, edt_input_4;
public static EditText edt_hotspots_name, edt_hotspots_password;

public HotSpotsListAdapter(Context context, List<String> list) {
    this.context = context;
    this.list = list;

}

@Override
public int getCount() {
    return list.size();
}

@Override
public Object getItem(int position) {
    return list.get(position);
}

@Override
public long getItemId(int position) {
    return 0;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    LayoutInflater inflater = (LayoutInflater) context
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    convertView = inflater.inflate(R.layout.network_hotspots_list_item, null);
    TextView text_left = (TextView) convertView.findViewById(R.id.hotspots_list_left_text);
    RelativeLayout relativeLayout = (RelativeLayout) convertView.findViewById(R.id.hotspots_item_content);
    relativeLayout.setBackgroundColor(Color.parseColor("#a7ffffff"));
    text_left.setText(list.get(position).toString());
    if (HotSpotsFragment.list_selected_position == position) {
        relativeLayout.setBackgroundColor(Color.WHITE);
    }
    TextView textView = (TextView) convertView.findViewById(R.id.hotspots_list_text);
    edt_hotspots_name = (EditText) convertView.findViewById(R.id.name_edit);
    edt_hotspots_password = (EditText) convertView.findViewById(R.id.password_edit);
    TextView point1 = (TextView) convertView.findViewById(R.id.point_1);
    TextView point2 = (TextView) convertView.findViewById(R.id.point_2);
    TextView point3 = (TextView) convertView.findViewById(R.id.point_3);
    edt_input_1 = (EditText) convertView.findViewById(R.id.ip_input_1);
    edt_input_2 = (EditText) convertView.findViewById(R.id.ip_input_2);
    edt_input_3 = (EditText) convertView.findViewById(R.id.ip_input_3);
    edt_input_4 = (EditText) convertView.findViewById(R.id.ip_input_4);


    SharedPreferences read_name = context.getSharedPreferences("hotspots_user_name", Context.MODE_PRIVATE);
    SharedPreferences read_edit = context.getSharedPreferences("hotspots_user_edit", Context.MODE_PRIVATE);
    SharedPreferences read_password = context.getSharedPreferences("hotspots_user_password", Context.MODE_PRIVATE);
    String ip_input1 = read_edit.getString("edt_ip_input1", "");
    String ip_input2 = read_edit.getString("edt_ip_input2", "");
    String ip_input3 = read_edit.getString("edt_ip_input3", "");
    String ip_input4 = read_edit.getString("edt_ip_input4", "");
    String name = read_name.getString("edt_name", "");
    String password = read_password.getString("edt_password", "");
    switch (position) {
        case 0:
            edt_input_1.setVisibility(View.GONE);
            edt_input_2.setVisibility(View.GONE);
            edt_input_3.setVisibility(View.GONE);
            edt_input_4.setVisibility(View.GONE);
            edt_hotspots_name.setText(name);
            edt_hotspots_password.setVisibility(View.GONE);
            break;
        case 1:
            edt_input_1.setText(ip_input1);
            edt_input_2.setText(ip_input2);
            edt_input_3.setText(ip_input3);
            edt_input_4.setText(ip_input4);
            point1.setText(".");
            point2.setText(".");
            point3.setText(".");
            edt_hotspots_name.setVisibility(View.GONE);
            edt_hotspots_password.setVisibility(View.GONE);
            break;
        case 2:
            textView.setText("固定");
            edt_input_1.setVisibility(View.GONE);
            edt_input_2.setVisibility(View.GONE);
            edt_input_3.setVisibility(View.GONE);
            edt_input_4.setVisibility(View.GONE);
            edt_hotspots_password.setVisibility(View.GONE);
            edt_hotspots_name.setVisibility(View.GONE);
            break;
        case 3:
            edt_hotspots_name.setVisibility(View.GONE);
            edt_hotspots_password.setText(password);
            edt_input_1.setVisibility(View.GONE);
            edt_input_2.setVisibility(View.GONE);
            edt_input_3.setVisibility(View.GONE);
            edt_input_4.setVisibility(View.GONE);
            break;
        case 4:
            textView.setText("启用");
            edt_input_1.setVisibility(View.GONE);
            edt_input_2.setVisibility(View.GONE);
            edt_input_3.setVisibility(View.GONE);
            edt_input_4.setVisibility(View.GONE);
            edt_hotspots_password.setVisibility(View.GONE);
            edt_hotspots_name.setVisibility(View.GONE);
            break;
    }

    return convertView;
}

public static void WriteUserEditInfo() {
    SharedPreferences userdetect = context.getSharedPreferences("hotspots_user_edit", 0);
    SharedPreferences.Editor editor = userdetect.edit();

    editor.putString("edt_ip_input1", edt_input_1.getText().toString());
    editor.putString("edt_ip_input2", edt_input_2.getText().toString());
    editor.putString("edt_ip_input3", edt_input_2.getText().toString());
    editor.putString("edt_ip_input4", edt_input_4.getText().toString());
   /* editor.putString("edt_name", edt_hotspots_name.getText().toString());
    editor.putString("edt_password", edt_hotspots_password.getText().toString());*/
    editor.commit();
}

public static void WriteUserNameInfo() {
    SharedPreferences userdetect = context.getSharedPreferences("hotspots_user_name", 0);
    SharedPreferences.Editor editor = userdetect.edit();
  /*  editor.putString("edt_ip_input1", edt_input_1.getText().toString());
    editor.putString("edt_ip_input2", edt_input_2.getText().toString());
    editor.putString("edt_ip_input3", edt_input_2.getText().toString());
    editor.putString("edt_ip_input4", edt_input_4.getText().toString());*/
    editor.putString("edt_name", edt_hotspots_name.getText().toString());
 /*   editor.putString("edt_password", edt_hotspots_password.getText().toString());*/
    editor.commit();
}

public static void WriteUserPasswordInfo() {
    SharedPreferences userdetect = context.getSharedPreferences("hotspots_user_password", 0);
    SharedPreferences.Editor editor = userdetect.edit();

  /*  editor.putString("edt_ip_input1", edt_input_1.getText().toString());
    editor.putString("edt_ip_input2", edt_input_2.getText().toString());
    editor.putString("edt_ip_input3", edt_input_2.getText().toString());
    editor.putString("edt_ip_input4", edt_input_4.getText().toString());*/
    //    editor.putString("edt_name", edt_hotspots_name.getText().toString());
    editor.putString("edt_password", edt_hotspots_password.getText().toString());
    editor.commit();
}

}
这是adapter里面的代码,然后再fragment中
@Override
public void onPause() {
System.out.println(HotSpotsListAdapter.edt_input_1.getText().toString());
adapter_hotSpotsList.WriteUserEditInfo();
adapter_hotSpotsList.WriteUserNameInfo();
adapter_hotSpotsList.WriteUserPasswordInfo();
super.onPause();
Log.e("HotSpots", "onPause");
}

    但是切换fragment执行onPause后数据并没有读取到 应该是没有存进去 想请教一下这里该如何调用?才能正确的存到edittext的值呢?
  • 写回答

2条回答 默认 最新

  • 大道至簡 2016-09-18 06:05
    关注

    你的写入方法都写在onPause()方法里,都还没存怎么可能先读取到呢?

    评论

报告相同问题?

悬赏问题

  • ¥50 易语言把MYSQL数据库中的数据添加至组合框
  • ¥20 求数据集和代码#有偿答复
  • ¥15 关于下拉菜单选项关联的问题
  • ¥20 java-OJ-健康体检
  • ¥15 rs485的上拉下拉,不会对a-b<-200mv有影响吗,就是接受时,对判断逻辑0有影响吗
  • ¥15 使用phpstudy在云服务器上搭建个人网站
  • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
  • ¥15 vue3+express部署到nginx
  • ¥20 搭建pt1000三线制高精度测温电路
  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况