2015-03-19 127 views
0

我有一個活動和佔位符片段。我試圖在EditText框中加載一個字符串值,並在按下Save按鈕時保存它。但是在屏幕之間來回切換之後,應該顯示該文本的EditText不會顯示它。相反,它顯示文本「android.widget.EditText {5282c35c VFED..CL.F ...... 217,2-717,51#7f08005d app:id/nameInfo」。我不知道這是什麼意思。任何幫助將不勝感激。要麼我該如何修復,要麼我可以使用什麼來保存字符串值。Android共享首選項 - 重置

public class MyInformation extends Activity { 

public static SharedPreferences.Editor editor; 
public static final String PREFS_NAME = "MyPrefsFile"; 
public static SharedPreferences settings; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.personal_info_main); 

    settings = getSharedPreferences(PREFS_NAME, MODE_PRIVATE); 
    editor = settings.edit(); 

    getFragmentManager().beginTransaction() 
      .replace(R.id.container, PlaceholderFragment.newInstance()) 
      .commit(); 
} 

public static class PlaceholderFragment extends Fragment { 

    public static PlaceholderFragment newInstance() { 
     Bundle args = new Bundle(); 
     PlaceholderFragment fragment = new PlaceholderFragment(); 
     fragment.setArguments(args); 
     return fragment; 
    } 

    public PlaceholderFragment() { 
    } 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     final View rootView = inflater.inflate(R.layout.fragment_my_information, container, false); 

     EditText name = (EditText) rootView.findViewById(R.id.nameInfo); 

     name.setText(settings.getString("key_name", null)); 

     Button save = (Button) rootView.findViewById(R.id.saveButton); 
     save.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Toast.makeText(getActivity().getApplicationContext(), 
         "Personal Information Saved", 
         Toast.LENGTH_LONG).show(); 
       EditText name = (EditText) rootView.findViewById(R.id.nameInfo); 
       String nameAsString = name.toString(); 
       editor.putString("key_name", nameAsString); 
       editor.commit(); 
      } 
     }); 
     return rootView; 
    } 
} 

}

回答

0

改變這一行

  String nameAsString = name.toString(); 

  String nameAsString = name.getText().toString(); 
+0

這是我的問題。非常感謝。如你所知,我只是在學習android編程! – Stephanie 2015-03-19 00:15:48