开发者社区> 问答> 正文

关于监听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 后都重置了上面的数字啊 不应该只执行十次吗 怎么执行次数越来越多啊

展开
收起
蛮大人123 2016-03-10 15:53:31 2249 0
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪

    addTextChangedListener是添加,重复添加就会重复执行,和一般setOnClickListener不一样

    2019-07-17 18:57:48
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
2022 DTCC-阿里云一站式数据库上云最佳实践 立即下载
云时代的数据库技术趋势 立即下载
超大型金融机构国产数据库全面迁移成功实践 立即下载