在实现评论功能时,如果要加载自己已有的评论通常要利用服务器。如果用到sharepreference直接生成本地xml文件,则可以提升系统效率。同样的方法也可以用于ratingbar/seedbar/Textview等其他控件。
来看看如何实现代码吧
public class CourseRecommendFragment extends Fragment { private RecyclerView recyclerView; private TextView none; private Button button; private EditText editText; private RatingBar ratingBar1; private RatingBar ratingBar2; private RatingBar ratingBar3; private RatingBar ratingBar4; @Nullable @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.course_recommend_layout,container,false); button=(Button)view.findViewById(R.id.update); none=(TextView)view.findViewById(R.id.none); editText=(EditText)view.findViewById(R.id.editText); ratingBar1=(RatingBar)view.findViewById(R.id.ratingbar1); ratingBar2=(RatingBar)view.findViewById(R.id.ratingbar2); ratingBar3=(RatingBar)view.findViewById(R.id.ratingbar3); ratingBar4=(RatingBar)view.findViewById(R.id.ratingbar4); SharedPreferences share=getActivity().getSharedPreferences("save", Context.MODE_PRIVATE); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { editText.setVisibility(View.VISIBLE); button.setText("保存"); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { SharedPreferences share = getActivity().getSharedPreferences("save", Context.MODE_PRIVATE); String string = editText.getText().toString(); none.setText(string); SharedPreferences.Editor editor = share.edit(); editor.putString("course", string); editor.commit(); editText.setVisibility(View.INVISIBLE); } }); } }); none.setText(share.getString("course","")); return view; } }关于ratingbar的还没有实现,其实原理大同小异,只需要加载onratingbarchangelistener()就可以了。这里要注意的一点是,监听器外就要对share进行初始化,否则程序无法识别后面的share.getString(程序加载的时候没有这句就不能加载上次修改过的值)。如果写在监听器内,加载时也不显示,因为没有触发!这里onclick内其实可以不写,但是程序运行时不写有时会报错!欢迎大家批评