1

すでに設定されている場合、edittextのテキストを更新することはできますか?リストビューの人の名前と電話番号を編集テキストに入力しました。ユーザーにこれらの詳細を編集してもらいたいです。たとえば、名前を入力して[更新]ボタンをクリックしようとすると、入力を保存できず、リストビューから渡した入力を保存できます。

EditText sqlName = (EditText)findViewById(R.id.editName);
    EditText sqlNumber = (EditText)findViewById(R.id.editNumber);
    name = CustomListView.name;
    num = CustomListView.number;
    Button bUpdate = (Button)findViewById(R.id.editUpdate);
    Button bView = (Button)findViewById(R.id.editView);
    sqlName.setText(name);
    sqlNumber.setText(num);
    nameChanged = sqlName.getText().toString();
    numChanged = sqlNumber.getText().toString();
    bUpdate.setOnClickListener(new OnClickListener() {

        public void onClick(View arg0) {
            GroupDb info = new GroupDb(EditDetails.this);
            info.open();
            long rowid = info.getRowId(name, num);
            Toast.makeText(getApplicationContext(), nameChanged+" "+numChanged+" ", Toast.LENGTH_LONG).show();
            info.updateNameNumber(rowid, nameChanged, numChanged);
            Toast.makeText(getApplicationContext(), "Update Successful!", Toast.LENGTH_LONG).show();
            info.close();
            }
        });
4

1 に答える 1

0

コードの問題は、更新される前であってもEditTextsから値をフェッチしていることです。ユーザーが更新ボタンを押すのを待ってから、EditTextsからテキストを取得し、データベースに渡して保存する必要があります。

次のコードを試してください。

    EditText sqlName = (EditText)findViewById(R.id.editName);
    EditText sqlNumber = (EditText)findViewById(R.id.editNumber);
    name = CustomListView.name;
    num = CustomListView.number;
    Button bUpdate = (Button)findViewById(R.id.editUpdate);
    Button bView = (Button)findViewById(R.id.editView);
    sqlName.setText(name);
    sqlNumber.setText(num);
    bUpdate.setOnClickListener(new OnClickListener() {

        public void onClick(View arg0) {
            nameChanged = sqlName.getText().toString();
            numChanged = sqlNumber.getText().toString();
            GroupDb info = new GroupDb(EditDetails.this);
            info.open();
            long rowid = info.getRowId(name, num);
            Toast.makeText(getApplicationContext(), nameChanged+" "+numChanged+" ", Toast.LENGTH_LONG).show();
            info.updateNameNumber(rowid, nameChanged, numChanged);
            Toast.makeText(getApplicationContext(), "Update Successful!", Toast.LENGTH_LONG).show();
            info.close();
            }
        });
于 2012-12-02T17:29:13.773 に答える