- 我在永久保存数据时遇到问题。它应该很简单,我将数据发送到另一个片段并且它工作得很好,但是,我不知道如何保存数据。
我尝试了一些事情,但我想知道你是否可以帮助我。
在我的代码中,我通过按下按钮将数据发送到另一个片段。
-
这是代码:
包 com.example.mskydraw.notetech;
import android.content.Context;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Gallery;
import android.widget.TextView;
import android.widget.Toast;
import java.io.FileOutputStream;
import static android.content.Context.MODE_PRIVATE;
/**
* 一个简单的{@link Fragment}子类。
*/
公共类 Cofo 扩展 Fragment {
final static String SHARED_NAME_STRING="sharedp";
final static String USER_NAME_STRING="user";
public Cofo() {
// Required empty public constructor
}
EditText newTxt;
Button newBtn;
SharedPreferences sharedPreferences;
Context c = getActivity();
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_cofo, container, false);
// finding my bouton and text on layout
newTxt = (EditText)view.findViewById(R.id.Txt);
newBtn = (Button)view.findViewById(R.id.Btn);
sharedPreferences=this.c.getSharedPreferences(SHARED_NAME_STRING,Context.MODE_PRIVATE);
String userNameString=sharedPreferences.getString(USER_NAME_STRING, "");
newTxt.setText(userNameString);
// whenever I click on the bouton
newBtn.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
//This code allows you to jump into another fragment
// Call the fragment to where I want to jump
Main_content newmain = new Main_content();
//Here we are going to learn to how to save data
String Message = newTxt.getText().toString();
String file_name = "Hello_file";
// Create an object output string
//here we are sending data to another fragment
//You have declare bundle
Bundle bundle = new Bundle();
// You can use bundle.putxx everything such as String...float..
bundle.putInt("N1",5);
//calling the fragment I'm going to send the data
// and I'm going to send data I saved on bundle.
newmain.setArguments(bundle);
// The process of declaration fragment
FragmentManager manager = getFragmentManager();
// Jumping into main content fragment
manager.beginTransaction().replace(R.id.fragment,newmain).commit();
if (newTxt.getText().toString().equals("Hello")){
Toast.makeText(Cofo.this.getActivity(), "true", Toast.LENGTH_SHORT).show();
}
else{
Toast.makeText(Cofo.this.getActivity(), "Hi", Toast.LENGTH_SHORT).show();
}
SharedPreferences.Editor editor=sharedPreferences.edit();
}
});
return view;
}
}
如果您想使用共享首选项而不是通过捆绑发送数据,请使用以下代码:
String stringToSave = "Save me!";
// To save data to SP
SharedPreferences.Editor editor = getContext().getSharedPreferences(SHARED_NAME_STRING, MODE_PRIVATE).edit();
editor.putString(USER_NAME_STRING, stringToSave);
editor.apply();
// To load the data at a later time
SharedPreferences prefs = getContext().getSharedPreferences(SHARED_NAME_STRING, MODE_PRIVATE);
String loadedString = prefs.getString(USER_NAME_STRING, null);
此代码设置为可与片段一起使用。如果您使用 Activity,请删除获取上下文()在...前面获取共享首选项().
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)