【问题标题】:Edittext does not retain textEdittext 不保留文本
【发布时间】:2013-07-30 08:38:46
【问题描述】:

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

在第一个 Activity 中,当我按下操作栏按钮 (R.id.search) 时,我调用一个对话框,该对话框具有位于第二个 Activity (BaseMenuActivity.java) 的 EditText (mEdit)。

我的第一个 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 输入的文本。

谢谢

【问题讨论】:

  • 读取android活动的生命周期,当方向改变时,你需要在onconfigurationchanged()中添加添加代码。当你点击返回按钮尝试使用finish()
  • 对不起,我不明白我应该做什么

标签: android dialog android-edittext extends


【解决方案1】:

LifeCycle of Activity

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-29
    • 2015-05-27
    • 2023-03-06
    • 2023-03-15
    • 1970-01-01
    相关资源
    最近更新 更多