【发布时间】:2011-10-17 15:08:32
【问题描述】:
我有一个允许用户选择联系人的活动,它会返回联系人号码并将其输入到 EditText 中。
现在的问题是,如果用户在选择联系人之前输入了一个号码,那么该号码将在活动恢复时消失。
我知道我可以使用一个包来保存 UI 的状态。唯一的问题是用户在 EditText 中输入数字后,我想在从联系人选择器传回结果时自动在数字末尾添加一个逗号。
这是我目前所拥有的......
EditText numbers = null;
numbers = (EditText)findViewById(R.id.phoneNumbers);
@Override
protected void onRestoreInstanceState(Bundle outState){
super.onResume();
//opening my database
mDbHelper.open();
setRowIdFromIntent();
//populating some fields
populateField();
这是我的 onSavedInstanceState()...
@Override
protected void onSaveInstanceState(Bundle outState){
super.onSaveInstanceState(outState);
if(mRowId != null){
//Here just keeping a reference of a db ID i use
outState.putLong(DbAdapter.KEY_ROWID, mRowId);
}
如何将编辑文本保存到包中并在末尾附加逗号? 还有可能知道用户何时输入 10 位数字并在末尾自动附加 (,) 逗号吗?
编辑:
这是我设法想出的,但它不起作用。
@Override
protected void onSaveInstanceState(Bundle outState){
super.onSaveInstanceState(outState);
outState.putString("number", numbers.getText().toString().trim());
}
然后在onRestore()中
@Override
protected void onRestoreInstanceState(Bundle outState){
super.onResume();
mDbHelper.open();
if(currentNumber != null){
currentNumber = outState.getString("number").toString() + ",;
}
使用此代码,它只是在活动恢复时替换当前号码
【问题讨论】:
-
您需要从 populateFields 和 setRowIdFromIntent 粘贴更多代码。也请稍微格式化一下你的代码
标签: android