2015-05-23 2 views
-1

У меня есть форму. Здесь пользователь заполняет детали, такие как имя события, описание, местоположение и т. Д. Чтобы выбрать местоположение, я установил кнопку. Когда я нажимаю на кнопку, меня переводят на другую страницу/намерение. Я выбираю местоположение оттуда, и данные о местоположении передаются обратно в исходное намерение правильно. Но дело в том, что данные в других областях, таких как событие, описание и т. Д., Что пользователи заполнены, теряются. Я отправил this вопрос и попробовал их. Я упомянул this тоже и попытался использовать onSaveInstanceState так:onSaveInstanceState() не сохраняет данные с целью

private static final String ENAME = "ENAME"; 
private static final String DESC = "DESC"; 
private static final String SDATE = "SDATE"; 
private static final String EDATE = "EDATE"; 
private static final String STIME = "STIME"; 
private static final String ETIME = "ETIME"; 

@Override 
public void onSaveInstanceState(Bundle savedInstanceState) { 
    final String name = etename.getText().toString(); 
    savedInstanceState.putString(ENAME, name); 
    final String des = etdes.getText().toString(); 
    savedInstanceState.putString(DESC, des); 
    final String sdt = StartDate.getText().toString(); 
    savedInstanceState.putString(SDATE, sdt); 
    final String edt = EndDate.getText().toString(); 
    savedInstanceState.putString(EDATE, edt); 
    final String stm = StartTime.getText().toString(); 
    savedInstanceState.putString(STIME, stm); 
    final String etm = EndTime.getText().toString(); 
    savedInstanceState.putString(ETIME, etm); 

    // Put (save) other values into the outState bundle... 

    super.onSaveInstanceState(savedInstanceState); 
} 

Я имею эту функцию перед onCreate(); И вот мой onCreate();

protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.eventcreaten); 

    etename = (EditText) findViewById(R.id.etename); 
    etdes = (EditText) findViewById(R.id.etdes); 
    StartDate = (EditText) findViewById(R.id.etstartdate1); 
    EndDate = (EditText) findViewById(R.id.etenddate1); 
    btnCreateEvent = (Button) findViewById(R.id.btncreate); 
    tvd2 = (TextView) findViewById (R.id.tvd2); 
    tved2 = (TextView) findViewById (R.id.tved2); 
    tvg = (TextView) findViewById (R.id.tvg); 
    StartTime = (EditText) findViewById (R.id.etstartt1); 
    EndTime = (EditText) findViewById (R.id.etendt1); 


    if (savedInstanceState != null) { 
     final String name = savedInstanceState.getString(ENAME, ""); 
     etename.setText(name); 
     final String des = savedInstanceState.getString(DESC, ""); 
     etdes.setText(des); 
     final String sdt = savedInstanceState.getString(SDATE, ""); 
     StartDate.setText(sdt); 
     final String edt = savedInstanceState.getString(EDATE, ""); 
     EndDate.setText(edt); 
     final String stm = savedInstanceState.getString(STIME, ""); 
     StartTime.setText(stm); 
     final String etm = savedInstanceState.getString(ETIME, ""); 
     EndTime.setText(etm); 
    } else { 
     // No saved values to restore 
    } 

И это не работает. Может кто-нибудь указать, почему?

+0

Является ли ваша деятельность расширением класса деятельности непосредственно или существует цепочка? – Andrey

+0

@ ruan65 Да, он расширяет активность –

+0

Вы уверены, что 'onCreate()' получает вызов, когда вы возвращаетесь из другого действия? Эта операция не может быть уничтожена, и в этом случае 'onCreate()' не будет вызываться снова. –

ответ

0

Не уверен, что вы получили его на работу или нет. Но у меня есть дело с этим.

public class TestingForSO extends ActionBarActivity { 
    private static final String ENAME = "ENAME"; 
    EditText etename; 
    String name = ""; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_testing_for_so); 
     if (savedInstanceState != null) { 
      name = savedInstanceState.getString(ENAME, ""); 
      Log.e("NAME", "saved"); 
     } else{ 
      Log.e("NAME", "not_saved"); 
     } 
     etename = (EditText) findViewById(R.id.etename); 
     etename.setText(name); 
    } 

    @Override 
    public void onSaveInstanceState(Bundle savedInstanceState) { 
     super.onSaveInstanceState(savedInstanceState); 
     Log.e("NAME", "Saving"); 
     savedInstanceState.putString(ENAME, etename.getText().toString()); 
    } 
} 
+0

У меня такой же код? –

+0

Я бы запустил его в отдельном упражнении, чтобы проверить его. Это ошибка в коде, если она не работает. –

+0

Я считаю, что фрагмент кода работает. Я прошу вас, ребята, помочь мне выяснить, что не так с моим кодом. –

Смежные вопросы