2017-02-20 71 views
1

我已經從EditText上,然後SharedPreferences獲取值這個代碼發送到其他活動不知爲什麼我無法從其他活動使用什麼我想念我的代碼的任何建議提前 感謝接收共享的SharedPreferences值的值從另一個活動

-thats,對於得到的EditText SharedPreferences,我想從它值發送到第二活動

public class NationalId extends Activity { 
public static final String MyPREFERENCES = "MyPrefs" ; 
public static final String Name = "nameKey"; 
SharedPreferences sharedpreferences; 

final Context context = this; 
private Button button; 
private TextView result; 

public void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_national_id); 

    // components from main.xml 
    button = (Button) findViewById(R.id.button1); 
    result = (TextView) findViewById(R.id.tv1); 
    sharedpreferences = getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE); 

    // add button listener 
    button.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View arg0) { 


      // get prompts.xml view 
      LayoutInflater li = LayoutInflater.from(context); 
      View promptsView = li.inflate(R.layout.prompts, null); 

      android.app.AlertDialog.Builder alertDialogBuilder = new android.app.AlertDialog.Builder(
        context); 

      // set prompts.xml to alertdialog builder 
      alertDialogBuilder.setView(promptsView); 

      final EditText userInput = (EditText) promptsView 
        .findViewById(R.id.editTextDialogUserInput); 

      alertDialogBuilder 
        .setCancelable(false) 
        .setPositiveButton("OK", 
          new DialogInterface.OnClickListener() { 
           public void onClick(DialogInterface dialog,int id) { 
            String n = userInput.getText().toString(); 
            SharedPreferences.Editor editor = sharedpreferences.edit(); 
            editor.putString(Name, n); 
            editor.commit(); 
            // edit text 
            result.setText(userInput.getText()); 
            Toast.makeText(NationalId.this,"saved:"+n,Toast.LENGTH_LONG).show(); 

           } 
          }) 
        .setNegativeButton("Cancel", 
          new DialogInterface.OnClickListener() { 
           public void onClick(DialogInterface dialog,int id) { 
            dialog.cancel(); 
           } 
          }); 

      // create alert dialog 
      android.app.AlertDialog alertDialog = alertDialogBuilder.create(); 

      // show it 
      alertDialog.show(); 

     } 
    }); 
} 
} 

,在這裏我的第二個活動,我想在

獲得的價值我的第一個活動
public class receive extends Activity { 



private Button button; 
private EditText etPhoneno; 

public void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_opreator_mobily); 
    button = (Button) findViewById(R.id.buttonCall); 
    etPhoneno = (EditText) findViewById(R.id.editText1); 
    SharedPreferences prefs = getSharedPreferences("Name", 
      MODE_PRIVATE); 
    final String value = prefs.getString("n", "0"); 
    // add button listener\ 
    button.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View arg0) { 

      Toast.makeText(receive.this,"saved:"+value,Toast.LENGTH_LONG).show(); 


     } 
    }); 
} 

} 
+0

你想要做什麼?你是否想要將'edittext'字符串值傳遞給另一個活動?或者'SharedPreferences'中保存了一些值,並且您想在第二個活動中使用它? –

回答

5

在第二個活動中,您試圖使用不同的名稱獲取您的sharedpreferences實例,並使用不同的密鑰獲取您保存的值。

替換此:

SharedPreferences prefs = getSharedPreferences("Name", MODE_PRIVATE); 
final String value = prefs.getString("n", "0"); 

SharedPreferences prefs = getSharedPreferences("MyPrefs", MODE_PRIVATE); 
final String value = prefs.getString("nameKey", "0"); 
+0

考慮接受答案,如果幫助。 –

0

替換這兩個下面線

SharedPreferences prefs = getSharedPreferences("Name",MODE_PRIVATE); 
    final String value = prefs.getString("n", "0"); 

與這些線

SharedPreferences prefs = getSharedPreferences("MyPrefs", MODE_PRIVATE); 
final String value = prefs.getString("nameKey", "0"); 
相關問題