第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何修復 sqlite 在 android 中多次插入最后一個 EditText 值

如何修復 sqlite 在 android 中多次插入最后一個 EditText 值

湖上湖 2023-06-04 17:39:22
我正在嘗試在 android 的 sqlite 數據庫中插入 3 個 Edittext 值,插入功能運行良好,但它插入了最后一個 edittext 值 3 次。我插入 (john, smith, anna) 和 sqlite 插入 (anna, anna, anna) 這是我的代碼LinearLayout ll;EditText editText;TextView textView;String room;Button save;private DBHelper dbHelper;@Overrideprotected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_room_name);    final SharedPreferences mSharedPreferences = PreferenceManager.getDefaultSharedPreferences(getBaseContext());    String room_number = (mSharedPreferences.getString("room_number", ""));    ll = findViewById(R.id.ll);    final int num = Integer.valueOf(room_number);    dbHelper = new DBHelper(this);    for (int i = 0; i < num; i++) {        editText = new EditText(this);        editText.setHint("Room " + (i + 1) + " Name");        textView = new TextView(this);        textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 10);        ll.addView(editText);        ll.addView(textView);    }    save = new Button(this);    save.setText("save");    ll.addView(save);    save.setOnClickListener(v ->{        for (int j = 0; j < num; j++){            if(dbHelper.insertRoom(editText.getText().toString())){                Toast.makeText(getApplicationContext(), "done", Toast.LENGTH_LONG).show();            }            else {                Toast.makeText(getApplicationContext(), "No", Toast.LENGTH_LONG).show();            }        }    });}
查看完整描述

2 回答

?
小唯快跑啊

TA貢獻1863條經驗 獲得超2個贊

您在執(zhí)行插入操作的循環(huán)中使用相同的 EditText,這是您以編程方式創(chuàng)建的 3 個中的最后一個。

代替:


EditText editText;

使用數組存儲 3 個 EditText:


EditText[] editText;

并將代碼更改為:


LinearLayout ll;

EditText[] editText;

TextView textView;

String room;

Button save;


private DBHelper dbHelper;


@Override

protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_room_name);

    final SharedPreferences mSharedPreferences =

            PreferenceManager.getDefaultSharedPreferences(getBaseContext());

    String room_number = (mSharedPreferences.getString("room_number",

            ""));


    ll = findViewById(R.id.ll);


    final int num = Integer.valueOf(room_number);


    dbHelper = new DBHelper(this);


    editText = new EditText[num]; 

    for (int i = 0; i < num; i++) {

        editText[i] = new EditText(this);

        editText[i].setHint("Room " + (i + 1) + " Name");


        textView = new TextView(this);

        textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 10);


        ll.addView(editText[i]);

        ll.addView(textView);


    }

    save = new Button(this);

    save.setText("save");


    ll.addView(save);


    save.setOnClickListener(v -> {


        for (int j = 0; j < num; j++) {

            if (dbHelper.insertRoom(editText[j].getText().toString())) {

                Toast.makeText(getApplicationContext(), "done",

                        Toast.LENGTH_LONG).show();

            } else {

                Toast.makeText(getApplicationContext(), "No", Toast.LENGTH_LONG).show();

            }

        }


    });

}


查看完整回答
反對 回復 2023-06-04
?
不負相思意

TA貢獻1777條經驗 獲得超10個贊

你的做法不正確。您應該為每個 EditText 使用 Tag 并通過它的 Tag 獲取每個 EditText。


LinearLayout ll;

  EditText editText;

   TextView textView;

   String room;

    Button save;


      private DBHelper dbHelper;


    @Override

     protected void onCreate(Bundle savedInstanceState) {

     super.onCreate(savedInstanceState);

      setContentView(R.layout.activity_room_name);


     final SharedPreferences mSharedPreferences = 

    PreferenceManager.getDefaultSharedPreferences(getBaseContext());

        String room_number = (mSharedPreferences.getString("room_number", 

           ""));


      ll = findViewById(R.id.ll);


      final int num = Integer.valueOf(room_number);


          dbHelper = new DBHelper(this);


           for (int i = 0; i < num; i++) {

            editText = new EditText(this);

        editText.setHint("Room " + (i + 1) + " Name");


        //set tag for edit text


       editText.setTag(i);





    textView = new TextView(this);

    textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 10);



    ll.addView(editText);

    ll.addView(textView);


}

save = new Button(this);

save.setText("save");


ll.addView(save);


save.setOnClickListener(v ->{


    for (int j = 0; j < num; j++){

        if(dbHelper.insertRoom(editText.findViewWithTag(j).getText().toString())){

            Toast.makeText(getApplicationContext(), "done", 

         Toast.LENGTH_LONG).show();

        }

        else {

            Toast.makeText(getApplicationContext(), "No", Toast.LENGTH_LONG).show();

        }

    }


});


 }


查看完整回答
反對 回復 2023-06-04
  • 2 回答
  • 0 關注
  • 161 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號