2013-07-30 68 views
0

我有一個活動(Categories.java)當我按下一個操作欄按鈕延伸的其它活動(BaseMenuActivity.java)EDITTEXT不保留文本

在第一活性(R.id.search)我調用一個在第二個Activity(BaseMenuActivity.java)處具有EditText(mEdit)的對話框。

我的第一個活動(Categories.java)聲明如下:

public class Categories extends BaseMenuActivity implements OnItemClickListener { 
.............. 
} 

第二個活動(BaseMenuActivity.java)如下:

abstract class BaseMenuActivity extends Activity { 

private Context context; 

/// Creates the menu items 
public boolean onCreateOptionsMenu(Menu menu) { 
getMenuInflater().inflate(R.menu.main_list, menu); 
return true; 
} 

//Handles item selections from preference menu 
@Override 
public boolean onOptionsItemSelected(MenuItem item) { 

context=this; 

if(item.getItemId()==android.R.id.home){ 
    Intent intent = new Intent(this, Categories.class); 
    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    startActivity(intent); 
    return true; 
} 

if(item.getItemId()==R.id.search){ 

    LayoutInflater inflater=this.getLayoutInflater(); 
    AlertDialog.Builder builderbanner = new AlertDialog.Builder(this); 
    builderbanner.setView(inflater.inflate(R.layout.search_dialog, null)); 
    builderbanner.setTitle("Search......."); 
    //.setMessage(".........................") 
    builderbanner.setPositiveButton("OK", 
      new DialogInterface.OnClickListener() { 

     EditText mEdit; 
     String searchWord; 

     public void onClick(DialogInterface dialog, int which) { 

      Dialog f=(Dialog) dialog; 

      mEdit= (EditText)f.findViewById(R.id.searchWord); 
      searchWord= mEdit.getText().toString(); 

      Intent i= new Intent(context, Love_db.class); 
      Bundle extracase = new Bundle(); 
      extracase.putString("label", "SEARCH RESULTS"); 
      extracase.putString("searchWord", searchWord); 
      extracase.putInt("index", 99); 
      i.putExtras(extracase); 
      startActivity(i); 
      dialog.dismiss(); 
     } 
    }); 
    builderbanner.create(); 
    builderbanner.show(); 
    return true; 
} 

if(item.getItemId()==R.id.mine){ 
    //startActivity(new Intent(this, SendMyMantinada.class)); 
    return true; 
} 

if(item.getItemId()==R.id.prefs){ 
    //startActivity(new Intent(this, EditPreferences.class)); 
    return true; 
} 

return super.onOptionsItemSelected(item); 
} 

} 

我想問一下爲什麼這個的EditText (mEdit)在按下按鈕時不保留其值,或者當我改變方向時爲什麼對話框消失。 我應該怎麼做才能解決這個問題,因爲我想保留我在EditText mEdit中輸入的文本。

謝謝

+0

閱讀android活動的生命週期,並且您需要在方向更改時在onconfigurationchanged()中添加代碼。當您單擊返回按鈕時嘗試使用finish() –

+0

對不起,我不明白我應該做什麼 –

回答

0

LifeCycle of Activity

當你從一個活動移動到另一個活動中,所有值已被刪除其進行分配。

針對您的問題的解決方案: 您必須將edittext的值存儲在共享首選項或數據庫中。