2011-06-13 4 views
-1

제 코드를 살펴보십시오. 보시다시피 editText가 하나 있는데 editText에 텍스트가 저장됩니다.이 코드는 온라인에서 발견되었습니다. 내 레이아웃과 완벽하게 작동합니다. 하지만 editText2라는 다른 editText 상자를 추가 했으므로 코드를 작성하는 방법을 알 수 없습니다. 두 번째 텍스트를 저장하는 방법도 저장 하시겠습니까? src에 새 클래스를 만들어야합니까? 나는 editText2와 editBox2를 추가해야만한다. 그러나 어떻게 그리고 어디에서? 누군가가 나에게 단 하나의 샘플을 줄 수있어, 전체 코드에 사용할 수 있습니까? 예를 들어 protected void onCreate- editText2를 어떻게 추가합니까?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; 

}

+0

[텍스트 편집 상자의 저장 상태가 필요합니다. 제발 도와주세요!] (http://stackoverflow.com/questions/6325477/need-save-state-for-text-edit-boxes-please-help). 같은 질문을 두 번 게시하지 마십시오. – Aleadam

답변

0

당신은 레이아웃과 UI 위젯에 대한 몇 가지 기본 사항을 배울 필요가있다. editBox1은 의 res\layout 디렉토리에 정의되어 있습니다. 해당 파일을 열고 editBox1을보고 코드를 복사 한 다음 id를 editBox2로 변경하십시오. 그런 다음 onCreate() 코드에 editBox2 =(EditText)findViewById(R.id.editText2); 참조를 얻으려면

0

나는 내 질문에 대답하고 있습니다. 두 개의 editText 상자에 상태를 저장하는 데 100 % 작동합니다.

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; 
} 
관련 문제