-1

ユーザーが Bluetooth デバイス名を設定できるメニュー オプションがあります。現在、ダイアログには、選択したデバイスの現在の名前が実際には表示されません。ユーザーが変更前にデバイスの名前を確認できるように、編集可能なテキスト フィールドに既存のデバイス名を表示したいと考えています。

現在のメソッドは次のようになります。

private void changeName() {
        if (D)
        Log.d(TAG, "changeName");
            // Open the alert dialog box
        AlertDialog.Builder alert = new AlertDialog.Builder(this);
        alert.setTitle("Change Device Name");

        // Set an EditText view to get user input
        final EditText input = new EditText(this);
        alert.setView(input);
        alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int mButton) {
                String mDevicename = input.getText().toString();
                mBluetoothAdapter.setName(mDevicename);
                Toast.makeText(getApplicationContext(),
                        "Update device name to: " + mDevicename,
                        Toast.LENGTH_SHORT).show();

            }
        });
        alert.setNegativeButton("Cancel",
                new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int mButton) {
                        // Canceled.
                    }
                });

        alert.show();

    }
4

1 に答える 1

0

BluetoothAdapter クラスの getName() メソッドを呼び出して返された値で String 変数を初期化する必要がありました。次に、この文字列変数を AlertDialogue クラスの setText() メソッドに渡しました。

private void changeName() {
    if (D)
        Log.d(TAG, "changeName");
            // Open alert dialogue box
    AlertDialog.Builder alert = new AlertDialog.Builder(this);
    alert.setTitle("Change Device Name");
    // Set an EditText view and insert the existing device name
    String mDevicename = mBluetoothAdapter.getName();
    final EditText input = new EditText(this);
    input.setText(mDevicename);
    alert.setView(input);

    alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int mButton) {
            String mDevicename = input.getText().toString();
            mBluetoothAdapter.setName(mDevicename);
            Toast.makeText(getApplicationContext(),
                    "New device name is " + mDevicename, Toast.LENGTH_SHORT)
                    .show();

        }
    });

    alert.setNegativeButton("Cancel",
            new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int mButton) {
                    // Canceled.
                }
            });
    alert.show();
}
于 2012-12-06T19:05:24.690 に答える