2015-05-09 58 views
0

我有一個代碼,根據的EditText(ET)在以前的佈局如何拯救我的文字中的TextView的android

有MorningDrsGeneral值改變佈局的TextView的文本:

public class MorningDrsGeneral extends ActionBarActivity { 
Button button ; 
EditText et; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.morningdrs); 


    et = (EditText) findViewById(R.id.et); 
    addListenerOnButton1(); 
    } 
    public void addListenerOnButton1() { 

     final Context context = this; 

     button = (Button) findViewById(R.id.button1); 

     button.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View arg0) { 


      Intent intent = new Intent(context, bookingKamal.class); 
       intent.putExtra("fn" , et.getText().toString()); 
       startActivity(intent);} 


     });} 




@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.main, menu); 
    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // Handle action bar item clicks here. The action bar will 
    // automatically handle clicks on the Home/Up button, so long 
    // as you specify a parent activity in AndroidManifest.xml. 
    int id = item.getItemId(); 
    if (id == R.id.action_settings) { 
     return true; 
    } 
    return super.onOptionsItemSelected(item); 
} 

}

並有bookingKamal.java:

public class bookingKamal extends ActionBarActivity { 
Button button ; 
TextView textView3 ; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.bookingkamal); 

    textView3 = (TextView) findViewById(R.id.textView3) ; 
    String A = textView3.getText().toString(); 
    String N = " " ; 
    if (A.equals(N)){ 
    Intent intent = getIntent(); 
    String texx = intent.getStringExtra("fn") ; 
    textView3.setText(texx); 
    }} 








@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.main, menu); 
    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // Handle action bar item clicks here. The action bar will 
    // automatically handle clicks on the Home/Up button, so long 
    // as you specify a parent activity in AndroidManifest.xml. 
    int id = item.getItemId(); 
    if (id == R.id.action_settings) { 
     return true; 
    } 
    return super.onOptionsItemSelected(item); 
} 
    } 

我必須保持日e預訂打印佈局中的文本。

這意味着當我從這個佈局返回並回到它時,文本應該與以前相同。

+0

使用saveinstancstate保存數據 –

+0

好的如何使用它? –

回答

0

然後,它應該是這樣的

bookingKamal.java

String texx; 
void onBackPressed() { 
     Intent intent = new Intent(getApplicationContext(), MorningDrsGeneral.class); 
     intent.putExtra("texx" , texx); 
     startActivity(intent); 
} 

MorningDrsGeneral.java

protected void onCreate(Bundle savedInstanceState) { 
     et = (EditText) findViewById(R.id.et); 
     Intent intent2 = getIntent(); 
     if (intent2.getStringExtra("texx") != "") { 
       String abcd = intent2.getStringExtra("texx"); 
       et.setText(abcd); 
     } 

    } 
+0

這不是正確的做法。最好使用SharedPreferences。這將保存數據(即使你關閉了你的應用程序=>如果你想這樣做當然)。您使用的方法不方便。當你在這兩個之間添加一個新的片段時,你就被迫在任何地方改變你的代碼。最好用sharedPreferences保存數據 –

+0

你是對的。如果使用片段,這種方式將無法正常工作。我認爲我們必須創建維護SharedPreferences的類。 –

0

您可以使用SharedPreferences,這將節省一切如果你離開佈局或前夕n(如果你想)如果你關閉你的應用程序。看看Android的文檔http://developer.android.com/reference/android/content/SharedPreferences.html

+0

好的,你可以告訴我如何做到這一點..我讀它,我不知道在哪裏把我的代碼:( –

+0

http://stackoverflow.com/a/3624358/4774263這傢伙很容易地解釋它 –

+0

沒有我的例子不同>>它不是關於時間的問題! –