如何使用SharedPreferences保存在edittext中输入的文本,并在另一个Activity中的TextView中显示它

我试图从活动中保存在edittext中输入的文本并将其发送到另一个活动,以便它可以显示在最初不可见的文本视图中。 所以请帮助我..

这是我的第一个xml。 main.xml中

  

这是我的第二个xml。

next.xml:

      

这是我的主要行为代码。 MainActivity.java

  public class MainActivity extends Activity { public SharedPreferences savedData; private Button mbtn_save; private EditText medit_currency; public String s1; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mbtn_save=(Button)findViewById(R.id.button1); medit_currency=(EditText)findViewById(R.id.editText5); savedData=PreferenceManager.getDefaultSharedPreferences(this); mbtn_save.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub s1=medit_currency.getText().toString(); savePreference(s1,s1); Intent i=new Intent(MainActivity.this,Next.class); startActivity(i); } }); public void savePreference(String key,String value) { savedData=getPreferences(MODE_PRIVATE); SharedPreferences.Editor e=savedData.edit(); e.putString(key, value); e.commit(); Toast.makeText(MainActivity.this, "Saved", Toast.LENGTH_SHORT).show(); } public void showPreference(String key) { savedData=getPreferences(MODE_PRIVATE); String text=savedData.getString(key, ""); } }} 

这是我的第二项活动

Next.java

 public class Next extends Activity { MainActivity ma; private TextView mtext_one; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.next); mtext_one=(TextView)findViewById(R.id.textView1); ma=new MainActivity(); ma.savedData=getPreferences(MODE_PRIVATE); mtext_one.setVisibility(CONTEXT_INCLUDE_CODE); mtext_one.setText(ma.savedData.getString("10", "")); } } 

一旦我保存首选项并转移到另一个活动,我无法在Next.java中显示文本..帮助我..

在MainActivity.java中,通过intent将值传递给第二个活动,如下所示:

 @Override public void onClick(View arg0) { // TODO Auto-generated method stub s1=medit_currency.getText().toString(); savePreference(s1,s1); Intent i=new Intent(MainActivity.this,Next.class); // add below line intent.putExtra("s1", s1); startActivity(i); } 

在Next.java中,在onCreate中,您可以使用:

 Bundle bundle = getIntent().getExtras(); String s1 = bundle.getString("s1"); 

使用这一个:

  SharedPreferences sp = getSharedPreferences("Key", Activity.MODE_PRIVATE); SharedPreferences.Editor edt = sp.edit(); edt.putString("Name", "your Edit Text Value"); edt.commit(); 

在新活动中检索:

  SharedPreferences sp = getSharedPreferences("Key", Activity.MODE_PRIVATE); String name = sp.getString("Name", ""); 

mtext_one.setText(ma.savedData.getString("10", ""));

把你正在使用的密钥保存起来。 所以,它将是mtext_one.setText(ma.savedData.getString(key, ""));

像这样打开SharedPreference

SharedPreferences app_preferences = PreferenceManager.getDefaultSharedPreferences(this);

这将获得apps默认的共享首选项。

用于将文本输入到sharedPrefernces中的EditText

 SharedPreferences spppp = getSharedPreferences("tab", 0); SharedPreferences.Editor editors = spppp.edit(); editors.putString("for", "you_value"); editors.commit(); 

为了获得另一项活动的价值

 SharedPreferences spppp = getSharedPreferences("tab", 0); String get_value = spppp.getString("for" , ""); 

干杯

最好使用intent extras而不是sharedPreference。

以下是使用intent extras的示例。

在您的第一个活动(A)中

 Intent i = new Intent(A.this, B.class); i.putExtra("someName", variableThatYouNeedToPass); startActivity(i); 

在你的第二个活动(B)中

 Bundle extras = getIntent().getExtras(); int fetchedVariable = extras.getInt("someName");