2017-10-16 6 views
0

アクティビティは、いくつかの情報が入力されたときに、特定のアクティビティのボタンをクリックするとアクティビティBに行きます。 Bから戻るボタンをクリックすることにより、活動に戻ると
削除する方法アクティビティに戻る前にテキストデータを編集しますか?

は、編集テキストの内容は、それが消去取得私を助けて...などとして残ります。 ActivityB

2)あなたのActivityA

3にonActivityResultをごActivityBを起動し、上書きするstartActivityForResultを使用)オーバーライドActivityAを

1)の前に開始EditTextデータを削除します。

+0

'editText.setText(" ")'を入力するだけです。 –

答えて

3

はそれを行うには、いくつかの方法がありますonResumeメソッドを呼び出し、そのメソッド内のデータをEditTextから削除します。この方法では、ActivityBを開始しなくても、EditTextのデータがフラッシュされる可能性があるため、アクティビティのライフサイクルに注意してください。そうするには

は、単に実行します。

editText.setText(""); 
+1

'onResume()'でこれを行うことは、例えば、着信コールもデータをフラッシュします。 – adnanyousafch

+0

@adnanyousafch、うん、あなたは正しいです、私は私の答えをより正確に編集しました – AlexTa

1

だけstartActivity(intent)メソッドを呼び出す前に、テントはまたあなたのedittext to ("");

EditText name = (EditText)findViewByid(R.id.edittext); 
name.settext("Your Name"); 

Button send = (Button)findViewById(R.id.button); 
send.setOnClickListener(new View.OnClickListener(){ 
     public void onClick(View v) { 
    name.settext(""); 
     Intent activity_b = new Intent(ActivityA.this, ActivityB.class); 
     startActivity(activity_b) 
     } 

    }); 

たりすることができますを設定する前editText.setText("");

1

を設定することによって、それをリセットdo

@Override 
public void onResume(){ 
super.onResume(); 
name.settext("); 

} 
0

editText.setText("");

あなたが唯一のEditText空のようにしたい場合はActivityAが戻っActivityBから来るときそしてちょうどコードどこの行の前にそれを置く二つの異なる方法

  1. 内のコードの行の上に置くことができますあなたはActivityBを開始しています。 edittext.settext(""); Intent intent = new Intent(ActivityA.this, ActivityB.class); startActivity(intent)

  2. onResume()すべてのシナリオをすべてカバーする場合は、そのアクティビティが別のアクティビティかバックグラウンドかにかかわらず、いつでもedittextを空にします。

は、それはあなたを助けることを願っています。

関連する問題