相关疑难解决方法(0)

更改复选框值而不触发onCheckChanged

setOnCheckedChangeListener为我实施了checkbox

有没有办法可以打电话

checkbox.setChecked(false);
Run Code Online (Sandbox Code Playgroud)

没有触发 onCheckedChanged

checkbox android

127
推荐指数
7
解决办法
5万
查看次数

如何在不触发Text Watcher的情况下更改EditText文本?

我有一个EditText带有客户文本观察器的字段.在一段代码中,我需要更改我使用的EditText中的值.setText("whatever").

问题是,一旦我进行了更改,afterTextChanged调用的方法就会创建一个无限循环.如何在不触发afterTextChanged的情况下更改文本?

我需要在afterTextChanged方法中的文本,所以不建议删除TextWatcher.

java android event-handling infinite-loop

88
推荐指数
8
解决办法
5万
查看次数

即使在 onCreate 方法之后设置了 TextWatcher,也会在orientationChange 上触发 OnTextChanged

我一直在尝试使用 EditText 获得特定行为。这是我启用旋转的简单活动。当我输入一些文本时, onTextChanged方法被触发。

当我旋转手机,这种方法不应该被触发,bacause的文字,这是保存在onInstanceState已被设置为EditTextonCreate法。

但是,当我将手机旋转回原来的方向时,方法再次触发!请参阅本文末尾的 logcat。

这是来自新创建的 Android Studio 项目的复制和粘贴代码。

public class MainActivity extends AppCompatActivity {

    EditText editText;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        editText = (EditText) findViewById(R.id.search_query);
    }

    @Override
    protected void onPostCreate(@Nullable Bundle savedInstanceState) {
        super.onPostCreate(savedInstanceState);
        editText.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {

            }

            @Override
            public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
                Log.d("MainActivity", "charSequence:" + charSequence);
            } …
Run Code Online (Sandbox Code Playgroud)

android

6
推荐指数
1
解决办法
1348
查看次数

标签 统计

android ×3

checkbox ×1

event-handling ×1

infinite-loop ×1

java ×1