2011-12-22 5 views
0

基本的に、私は現在、画面上にいくつかのボタンを表示しようとしています。クリックすると、EditTextフィールドと完了ボタン。データが入力され、ヒットしたら、それは元の状態に戻り、ボタンテキストの名前を変更します。私はHow to pass EditText to another activity?を助けるためにこのリンクを使用しました。問題は、いったん別のボタンをクリックしてその情報を入力し、前のボタンのデータを忘れてしまったということです。私は文字列を持っているので、クリックされたボタンだけが編集され、データを格納していないと思います。私は状態を保存するためにさまざまなソリューションを試してみましたが、何も動作していないようです。1つのアクティビティでEditTextを使用して別のアクティビティのボタンテキストを変更する

私はAndroidにはかなり新しいので、私は解決策が非常に簡単かもしれないと私は間違って実装されていることをよく知っています。

ボタンと活動のためのコードは次のようなものです:

public void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
this.requestWindowFeature(Window.FEATURE_NO_TITLE); 
setContentView(R.layout.edit); 
setupViews(); 
setupListeners(); 
mIntentString = savedInstanceState != null ? 
savedInstanceState.getString("myKey"):null; 
if(mIntentString == null){ 
Bundle extras = getIntent().getExtras(); 
mIntentString = extras != null ? extras.getString("myKey") : "Choose name"; 
} 
if(ActivityController.button == "1"){ 
button1.setText(mIntentString); 
Log.e(button, "button1 being checked"); 
} 

... 

@Override 
public void onClick(View view){ 
if (view == button1) { 
Intent i = new Intent(); 
i.setClass(ActivityEdit.this, ActivityEnterInfo.class); 
startActivity(i); 
}} 

... 

public void refreshButtons() 
{ 
if(ActivityController.button == "1"){ 
mIntentString = button1.getText().toString(); 
Intent intent = new Intent(); 
intent.putExtra("returnKey",button1.getText().toString()); 
setResult(RESULT_OK,intent); 
} 

私は、このすべてが理にかなって願って、私は本当にこれでレンガの壁をヒットしてきましたし、私の理解から

答えて

0

を助けが必要あなたが望むのは、内部的にボタンの状態を保存し、戻ったときにそれらを復元することです。

あなたはonStop()またはonResume()をオーバーライドして、データを復元するためにそれを使用し、その後、民間のメンバーでボタンデータを保存するために、あなたのボタンの活動にonStart()またはonPause()をオーバーライドする必要があります。

+0

私がやっていたこととは全く違う道だったので、私は正しい道に私を入れました。ありがとうございました :) – Seperot

0

この問題の私のアプローチはsharedpreferencesを使用します。次の画面でタスクを完了したときにsharedpreferencesにボタンテキストを保存し、ボタンにテキストを表示する場合は、sharedPrefrenesにデータが存在するかどうかを確認してください。 それに応じてテキストを表示します。

〜Rollno1