我正在尝试构建一个简单的应用程序,以我的语言为初始阅读障碍评估提供资源,因此原始字符串是保加利亚语,我已将其更改为此处的示例文本。
情况是这样的:
- 我有一个 EditText,因此用户可以输入 child ,因为它稍后会(希望)通过电子邮件发送结果 我想在那里有个人风格
- 填充 EditText 后,我想在没有 单击按钮并获取它以更新中问题的字符串 测试。 (例如: child 的名字输入是“Amy”,我想要 问题是“玩____时很容易分心”,之后 名称输入让他们更改为“当玩 Amy 时很容易 分心了”。
我一直在寻找解决方案,我能找到的最接近我需要的东西写在下面。但是输入没有任何变化。
我不介意答案是否需要改变我的计划——例如添加一个按钮。但我真的很想能够以某种方式动态更新它。
我的阅读障碍测试 Activity .java
EditText childName;
String savedName;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.dyslexia_test_layout);
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int width = dm.widthPixels;
int height = dm.heightPixels;
getWindow().setLayout((int) (width * .9), (int) (height * .8));
childName = (EditText) findViewById(R.id.name_input);
savedName = childName.getText().toString();
String text = String.format(R.string.dyslexia_question_one, savedName);
}
}
我的编辑文本
<EditText
android:id="@+id/name_input"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="2"
android:hint=""/>
我试图让 EditText 显示的字符串:
<string name="dyslexia_question_one">String text <xliff:g id="name" example="Amy">%1$s</xliff:g> more string text here</string>
最佳答案
当 EditText
失去焦点时,您可以添加一个监听器来监听。
childName.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable s) {
String question= //....get the question;
String sWithName =
question.replace("xxx",yourEditText.getText().toString())
yourTextView.setText(sWithName);
}
public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
public void onTextChanged(CharSequence s, int start, int before, int count) {}
});
}
修改String,在你想放名字的地方加上XXX。
例如,将“XXX”更改为点 (....)。或者您喜欢的任何内容。
关于java - 在没有单击按钮的情况下输入后,将 EditText 的值添加到 strings.xml 中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48602647/