Как хранить Listitems в общих предпочтениях
У меня есть 2 массива с именами "метки" и "значения", я отправляю эти элементы в класс адаптера и устанавливаю его в listview. Теперь я хочу, чтобы все эти значения были сохранены в общих настройках, а также они должны быть доступны для редактирования при обновлении изменений. как использовать Sharedpreferences в listview, я не получаю.
public class MyProfile_Fragment extends Fragment implements View.OnClickListener{ ArrayList<string> label; ArrayList<string> values; ArrayList<SelectUser> selectUsers = null; ProfileAdapter adapter; ListView listView; Button editbtn; Context _c=getActivity(); View profile; SelectUser cat; int clickCount = 0; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { profile = inflater.inflate(R.layout.profile_layout, container, false); selectUsers = new ArrayList<SelectUser>(); editbtn = (Button) profile.findViewById(R.id.edit); listView = (ListView) profile.findViewById(R.id.profileList); label = new ArrayList<string>(); label.add("Fname"); label.add("Lname"); label.add("Industry"); label.add("Company"); label.add("Address"); values = new ArrayList<string>(); values.add("abc"); values.add("M"); values.add("IT"); values.add("XYZ"); values.add("qwerty"); for (int i = 0; i<= label.size(); i++) { SelectUser selectUser = new SelectUser(); selectUser.setLabel(label.get(i)); String val=values.get(i); selectUser.setValues(String.valueOf(values.get(i)); selectUsers.add(selectUser); } adapter = new ProfileAdapter(getActivity(), selectUsers); listView.setAdapter(adapter); // on edit clickbutton enable or disable the edit text by calling actv() method editbtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if (clickCount == 0) { editbtn.setText("Save"); adapter.actv(true); adapter.notifyDataSetChanged(); listView.setAdapter(adapter); clickCount = 1; } else if (clickCount == 1) { editbtn.setText("Edit"); adapter.actv(false); adapter.notifyDataSetChanged(); listView.setAdapter(adapter); Toast.makeText(getActivity(), "click 1", Toast.LENGTH_LONG).show(); clickCount = 0; } } }); return profile; } // Adopter class : handle list items class ProfileAdapter extends BaseAdapter { ViewHolder holder = new ViewHolder(); public ArrayList<SelectUser> groupItem; int flag=0; public ProfileAdapter(Context context, ArrayList<SelectUser> group) { groupItem = group; _c = context; } @Override public int getCount() { return groupItem.size(); } @Override public SelectUser getItem(int i) { return groupItem.get(i); } @Override public long getItemId(int i) { return i; } @Override public View getView(final int position, final View convertView, ViewGroup parent) { View v = convertView; if (v == null) { LayoutInflater inflater = (LayoutInflater) _c.getSystemService (Context.LAYOUT_INFLATER_SERVICE); v = inflater.inflate(R.layout.profile_listitems, parent, false); v.setTag(holder); } else { holder = (ViewHolder) v.getTag(); } holder.mLable = (TextView) v.findViewById(R.id.label); holder.mValues = (EditText) v.findViewById(R.id.values); flag=position; cat = groupItem.get(flag); holder.mLable.setText(cat.getLabel()); holder.mValues.setText(cat.getValues()); holder.mValues.addTextChangedListener(new GenericTextWatcher(holder.mValues)); if(clickCount==0) {holder.mValues.setEnabled(false); actv(false); } return v; } protected void actv(final boolean active) { holder.mValues.setEnabled(active); if (active) { holder.mValues.requestFocus(); } } } class ViewHolder { TextView mLable; EditText mValues; } //Declaration private class GenericTextWatcher implements TextWatcher { private View view; private GenericTextWatcher(View view) { this.view = view; } public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) { } public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) { } public void afterTextChanged(Editable editable) { String text = editable.toString(); switch (view.getId()) { case R.id.values: cat.setValues(text); break; } } } }
Richard MacCutchan
Вы делаете это, написав код, чтобы взять значения и сохранить их в соответствии с вашими требованиями. Пожалуйста, отредактируйте свой вопрос и объясните, какие трудности вы испытываете с вашей реализацией.
[no name]
Пожалуйста, сделайте свой вопрос точечным, то есть спросите, что именно вам нужно.