布局有一个编辑文本和微调器,当在编辑文本中输入任何内容/键入时,值正在按我想要的方式改变,但问题是当我更改微调器值时,文本不会改变,直到我在编辑中键入内容文本。 实际上我想要的是当微调器项目被更改时,我想在编辑文本中显示当前值的结果。
我认为因为我在onTextChanged
函数中写了我的逻辑,
我也在beforeTextChanged
中调用了相同的逻辑,但dit在我输入内容之前不会改变..
我试过的代码:
cc.input.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable s) {
}
public void beforeTextChanged(CharSequence s, int start,
int count, int after) {
aLogic(cc);
}
public void onTextChanged(CharSequence s, int start,
int before, int count) {
aLogic(cc);
}
});
private void aLogic(uc) {
........
if (subunit.equals("aa")) {
//something
}
if (subunit.equals("aaaaaa")) {
//something
}if (subunit.equals("aaa")) {
//something
}
}
答案 0 :(得分:2)
当您更改spinner
值时,表示您触发OnItemSelectedListener
。所以你必须对它做你的逻辑:
spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) {
// Here you change your value or do whatever you want
}
@Override
public void onNothingSelected(AdapterView<?> parentView) {
// Here comes when you didnt choose anything from your spinner logic
}
});
答案 1 :(得分:1)
如果我理解正确: TextView已编辑 - &gt;旋转器改变了 在Spinner中选择的元素 - &gt; TextView已更改。
所以你需要一个用于textview的监听器(TextWatcher)和另一个用于微调器的监听器:
yourSpinner.setOnItemSelectedListener(yourListener);
使用textview.setText(yourSelectedValue)。
但我会警告你关于你的解决方案:你描述的行为是小部件AutoCompleteTextView的行为。
否则,它只是:
yourSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
YourObject o = parent.getItemAtPosition(position);
aLogic(....);
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});