Как добавить код для поля editText2? - PullRequest
0 голосов
/ 13 июня 2011

Пожалуйста, посмотрите на мой код.Как вы видите, у него есть один editText и что он делает - он сохраняет текст в editText. Я нашел этот код онлайн.Это прекрасно работает с моим макетом.Но я добавил еще одно поле editText, которое я назвал editText2 и не могу понять, как его кодировать.Как сделать так, чтобы текст во втором тоже сохранялся?Нужно ли создавать новый класс в src?Я понял, что мне нужно добавить editText2 и editBox2, но как и где?Может ли кто-нибудь дать мне только один пример, чтобы я мог использовать его для всего кода?Например, на защищенном void onCreate - как мне добавить editText2? Спасибо!

package tryone.now.forfreenow;
import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.widget.EditText;
import android.widget.TextView;
public class notepad extends Activity
{
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    editBox =(EditText)findViewById(R.id.editText1);
}
protected void onResume() {
    super.onResume();
    SharedPreferences prefs = getPreferences(0); 
    String restoredText = prefs.getString("text", null);
    if (restoredText != null) {
        editBox.setText(restoredText, TextView.BufferType.EDITABLE);
        int selectionStart = prefs.getInt("selection-start", -1);
        int selectionEnd = prefs.getInt("selection-end", -1);
        if (selectionStart != -1 && selectionEnd != -1) {
            editBox.setSelection(selectionStart, selectionEnd);
        }
    }
}
protected void onPause() {
    super.onPause();
    SharedPreferences.Editor editor = getPreferences(0).edit();
    editor.putString("text", editBox.getText().toString());
    editor.putInt("selection-start", editBox.getSelectionStart());
    editor.putInt("selection-end", editBox.getSelectionEnd());
    editor.commit();
}
private EditText editBox;

}

Ответы [ 2 ]

0 голосов
/ 13 июня 2011

Я отвечаю на свой вопрос. Он работает на 100% для сохранения состояния в двух полях editText.

package tryone.now.forfreenow;
import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.widget.EditText;
import android.widget.TextView;
public class notepad extends Activity
{
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    editBox =(EditText)findViewById(R.id.editText1);
    editBox2 =(EditText)findViewById(R.id.editText2);
  }
  protected void onResume() {
    super.onResume();

    SharedPreferences prefs = getPreferences(0); 
    String restoredText = prefs.getString("text", null);
    if (restoredText != null) 
    {
        editBox.setText(restoredText, TextView.BufferType.EDITABLE);

        int selectionStart = prefs.getInt("selection-start", -1);
        int selectionEnd = prefs.getInt("selection-end", -1);
        if (selectionStart != -1 && selectionEnd != -1) 
        {
            editBox.setSelection(selectionStart, selectionEnd);
        }
        SharedPreferences prefs2 = getPreferences(1); 
        String restoredText2 = prefs2.getString("text2", null);
        if (restoredText2 != null) 
        {
            editBox2.setText(restoredText2, TextView.BufferType.EDITABLE);

            int selectionStart2 = prefs2.getInt("selection-start2", -1);
            int selectionEnd2 = prefs2.getInt("selection-end2", -1);
            if (selectionStart2 != -1 && selectionEnd2 != -1) 
            {
                editBox2.setSelection(selectionStart2, selectionEnd2);
            }
        }
    }
}

 protected void onPause() {
    super.onPause();

    SharedPreferences.Editor editor = getPreferences(0).edit();
    editor.putString("text", editBox.getText().toString());
    editor.putInt("selection-start", editBox.getSelectionStart());
    editor.putInt("selection-end", editBox.getSelectionEnd());
    editor.commit();

    SharedPreferences.Editor editor2 = getPreferences(1).edit();
    editor2.putString("text2", editBox2.getText().toString());
    editor2.putInt("selection-start2", editBox2.getSelectionStart());
    editor2.putInt("selection-end2", editBox2.getSelectionEnd());
    editor2.commit();
}

 private EditText editBox;
 private EditText editBox2;
 }  
0 голосов
/ 13 июня 2011

Вам необходимо изучить некоторые основы компоновки и виджетов пользовательского интерфейса. editBox1 определяется в main.xml в каталоге res\layout. Откройте этот файл и посмотрите на editBox1, скопируйте код и измените идентификатор на editBox2. Затем в onCreate() добавьте код editBox2 =(EditText)findViewById(R.id.editText2); чтобы получить ссылку

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...