猿问

求大神看一下代码 关于监听edittext和update SQLite

String msg3=btn_huadongkaiguan.getText().toString();


    EditText[] arr=new EditText[]{et_guanbi,et_ok,et_caidan,et_shezhi,

            et_fangxiang,et_fanhui,et_a,et_b,et_c,et_x};

    String[] m=new String[]{"a","b","c","d","e"

            ,"f","g","h","i","j"};                    //每个edittext的名字

    if (msg3.equals("guan")) {

        for (int i = 0; i < arr.length; i++) {

            //arr[i].setText(null);

            String A=m[i];

            arr[i].addTextChangedListener(new NewTextWatcher(arr[i],A));//监听每一个edittext

            

        }

}else {


    et_guanbi.setText("0");et_ok.setText("1");et_caidan.setText("2");

    et_shezhi.setText("3");et_fangxiang.setText("4");et_fanhui.setText("5");

    et_a.setText("6");et_b.setText("7");et_c.setText("8");et_x.setText("9");

}

以上代码在一个ToggleButton的点击事件中 默认为打开ToggleButton

class NewTextWatcher implements TextWatcher{


    private EditText editText;

    private String z;

    

    public NewTextWatcher(EditText editText, String i) {

        this.editText = editText;

        this.z=i;

    }

    @Override

    public void onTextChanged(CharSequence s, int start, int before, int count) {    

        String msg4=editText.getText().toString();

            ContentResolver resolver=getContentResolver();

            ContentValues values=new ContentValues();

            values.put(z, msg4);

            int uri4=resolver.update(uri3, values, "_IDc=?", new String[]{"1"}); //更新数据库

            System.out.println("updata"+uri4);

            

运行这个代码后 第一次关闭 ToggleButton 然后再打开 update执行了十次 这个没问题 然后再关闭 再打开 update执行了 二十次 在打开 关闭 update就执行了 三十次 这是什么原因啊每次ToggleButton 后都重置了上面的数字啊 不应该只执行十次吗 怎么执行次数越来越多啊


红颜莎娜
浏览 292回答 1
1回答

慕尼黑5688855

题主是不是有点熟悉,我昨天好像回答过类似的问题了吧,addTextChangedListener是添加,重复添加就会重复执行,和一般setOnClickListener不一样
随时随地看视频慕课网APP

相关分类

Java
我要回答