【问题标题】:Saving information in EditText in android在Android中的EditText中保存信息
【发布时间】:2013-10-25 14:16:37
【问题描述】:

我正在尝试使用 onsaveinstancestate 将数据保留在我的 Edittext 视图中。用户单击“添加”按钮,该按钮应该保留 Edittext 视图中的信息。单击添加按钮时,用户将返回到活动主界面。 When the module is selected for editing, the edit_module layout is shown but without the information in the edittext views, which I am trying to retain.有任何想法吗??我想我可能遗漏了一个步骤,除了将字符串保存在 onsaveinstancestate 方法中,然后在调用活动时将这些字符串分配给 Edittext 视图之外,还有更多吗? Android 新手。

NewModule.java

public class NewModule extends Activity{

// The EditText objects

EditText ModuleCode;
EditText ModuleName;
EditText ModuleType;
EditText DayOfWeek;
EditText StartTime;
EditText EndTime;
EditText Location;
EditText AdditionalInfo;


@Override
public void onCreate(Bundle savedInstanceState) {


      // Get saved data if there is any

    super.onCreate(savedInstanceState);
    dbTools = new DBTools(this);
    // Designate that add_module.xml is the interface used

    setContentView(R.layout.add_module);

    // Initialize the EditText objects
    ModuleCode= (EditText) findViewById(R.id.modcodeet);
    ModuleName = (EditText) findViewById(R.id.modnameet);
    ModuleType = (EditText) findViewById(R.id.moduletypeet);
    DayOfWeek = (EditText) findViewById(R.id.dowet);
    StartTime = (EditText) findViewById(R.id.starttimeet);
    EndTime = (EditText) findViewById(R.id.endtimeet);
    Location = (EditText) findViewById(R.id.locationet);
    AdditionalInfo = (EditText) findViewById(R.id.additionalinfoet);



}
public void addNewModule(View view) {

    // Will hold the HashMap of values 

    HashMap<String, String> queryValuesMap =  new  HashMap<String, String>();




    // Get the values from the EditText boxes

    queryValuesMap.put("ModuleCode", ModuleCode.getText().toString());
    queryValuesMap.put("ModuleName", ModuleName.getText().toString());
    queryValuesMap.put("ModuleType", ModuleType.getText().toString());
    queryValuesMap.put("DayOfWeek", DayOfWeek.getText().toString());
    queryValuesMap.put("StartTime", StartTime.getText().toString());
    queryValuesMap.put("EndTime", EndTime.getText().toString());
    queryValuesMap.put("Location", Location.getText().toString());
    queryValuesMap.put("AdditionalInfo", AdditionalInfo.getText().toString());

    // Call for the HashMap to be added to the database

    dbTools.insertModule(queryValuesMap);

    // Call for MainActivity to execute

    this.callMainActivity(view);


}
public void callMainActivity(View view) {
    Intent theIntent = new Intent(getApplicationContext(), MainActivity.class);
    startActivity(theIntent);
}   

public void onSaveInstanceState(Bundle savedInstanceState){


EditText editText = (EditText) findViewById(R.id.modcodeet);
String code = editText.getText().toString();
savedInstanceState.putString("code", code);


EditText editText2 = (EditText) findViewById(R.id.modnameet);
String name = editText2.getText().toString();
savedInstanceState.putString("name", name);

EditText editText3 = (EditText) findViewById(R.id.moduletypeet);
String type = editText3.getText().toString();
savedInstanceState.putString("type", type);


EditText editText4 = (EditText) findViewById(R.id.dowet);
String dow = editText4.getText().toString();
savedInstanceState.putString("dow", dow);

EditText editText5 = (EditText) findViewById(R.id.starttimeet);
String messagesubject = editText5.getText().toString();
savedInstanceState.putString("start", messagesubject);

EditText editText6 = (EditText) findViewById(R.id.endtimeet);
String end = editText6.getText().toString();
savedInstanceState.putString("end",end);

EditText editText7 = (EditText) findViewById(R.id.locationet);
String location = editText7.getText().toString();
savedInstanceState.putString("location", location);

 EditText editText8 = (EditText) findViewById(R.id.additionalinfoet);
String additionalinfo = editText8.getText().toString();
savedInstanceState.putString("additionalinfo", additionalinfo);

super.onSaveInstanceState(savedInstanceState);

}

}

TIA

编辑 Module.java

public class EditModule extends Activity{



EditText ModuleCode;
EditText ModuleName;
EditText ModuleType;
EditText DayOfWeek;
EditText StartTime;
EditText EndTime;
EditText Location;
EditText AdditionalInfo;

DBTools dbTools = new DBTools(this);

public void onCreate(Bundle savedInstanceState){

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


    if (savedInstanceState != null)
    {
          String strValue = savedInstanceState.getString("code"); 
          if (strValue != null);
           ModuleCode = (EditText)findViewById(R.id.modcodeet);
          ModuleCode.setText(strValue); 

        strValue = savedInstanceState.getString("name");
          if (strValue != null);
          ModuleName = (EditText)findViewById(R.id.modnameet);  
          ModuleName.setText(strValue);

          strValue = savedInstanceState.getString("type");
        if(strValue != null);
        ModuleType = (EditText)findViewById(R.id.moduletypeet);
            ModuleType.setText(strValue);

            strValue = savedInstanceState.getString("dow");
        if(strValue != null);
        DayOfWeek = (EditText)findViewById(R.id.dowet);
        DayOfWeek.setText(strValue);

        strValue = savedInstanceState.getString("start");
        if (strValue != null);
        StartTime = (EditText)findViewById(R.id.starttimeet);
        StartTime.setText(strValue);

        strValue = savedInstanceState.getString("end");
        if (strValue != null);
        EndTime = (EditText)findViewById(R.id.endtimeet);
        EndTime.setText(strValue);

        strValue = savedInstanceState.getString("location");
        if (strValue != null);
        Location = (EditText)findViewById(R.id.locationet);
        Location.setText(strValue);

        strValue = savedInstanceState.getString("additionalinfo");
        if (strValue != null);
        AdditionalInfo = (EditText)findViewById(R.id.additionalinfoet);
        AdditionalInfo.setText(strValue);

    }




public void editModule(View view){

    HashMap<String, String> queryValuesMap = new HashMap<String, String>();



    ModuleName = (EditText) findViewById(R.id.modnameet);
    ModuleType = (EditText) findViewById(R.id.moduletypeet);
    DayOfWeek = (EditText) findViewById(R.id.dowet);
    StartTime = (EditText) findViewById(R.id.starttimeet);
    EndTime = (EditText) findViewById(R.id.endtimeet);
    Location = (EditText) findViewById(R.id.locationet);
    AdditionalInfo = (EditText) findViewById(R.id.additionalinfoet);



    this.callMainActivity(view);

}


public void callMainActivity(View view){

    Intent objIntent = new Intent(getApplication(), MainActivity.class);

    startActivity(objIntent);

}



}

【问题讨论】:

  • 你想将edittext数据传递给下一个活动吗???
  • 它不是下一个活动,它从 add_module 活动到 activity_main 再到 edit_module 活动。我希望 add_module edittet 字段中的信息显示在 edit_moule edittext 字段中,但确实如此不要直接从 add_module 转到 edit_module,如果这有意义的话,所以我不确定从以前的活动中获取额外内容是否可行。
  • 将它们存储在 add_module 中的静态字符串变量中。在 edit_modules 中通过类名访问它。

标签: java android android-edittext


【解决方案1】:

试试这样:

//intialization of shared preferences
private SharedPreferences preferences;

//in oncreate() give like this:
preferences = PreferenceManager.getDefaultSharedPreferences(this);

// store the edittext value in shared preferences
Editor edit = preferences.edit();
edit.putString("edittextvalue", edittextvalue);
edit.commit();

//whereever u want to get value and use
String apptext = preferences.getString("edittextvalue","");

【讨论】:

    【解决方案2】:

    使用 SharedPreferences 保存编辑文本值

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-17
      • 2014-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-05
      相关资源
      最近更新 更多