Edittext不保留文本

时间:2013-07-30 08:38:47

标签: android dialog android-edittext extends

我有一个Activity(Categories.java)扩展了另一个Activity(BaseMenuActivity.java)

在第一个Activity,当我按下一个Action bar按钮(R.id.search)时,我调用一个Dialog,它有一个EditText(mEdit),位于第二个Activity(BaseMenuActivity.java)。

我的第一个Activity(Categories.java)声明如下:

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

第二个Activity(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中输入的文字。

谢谢

1 个答案:

答案 0 :(得分:0)

LifeCycle of Activity

当您从一个活动移动到另一个活动时,所有已删除的值都将被分配。

您的问题的解决方案: 您必须将edittext的值存储在共享首选项或数据库中。