0

次のコードがあります:

class Printer{
Activity activity;
public Printer (Activity activity) {
    this.activity = activity;
    initializeBluetooth();
}

public boolean initializeBluetooth() {
    BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
    if (mBluetoothAdapter == null) {
        Context context = activity.getApplicationContext();
        Toast toast = Toast.makeText(context, activity.getString(R.string.notSupportedBluetooth), 3000);
        toast.show();
        return false;
    } else {
        if (!mBluetoothAdapter.isEnabled()) {
            Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
            activity.startActivityForResult(enableBtIntent, 0);
            return false;
        }
    }
    return true;
}

protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
    System.out.println(resultCode);
    if (resultCode == 0) {
        System.out.println("one");
    } else {
        System.out.println("two");
    }
}}

問題はonActivityResultです。クラスがアクティビティではないため、呼び出すことができないので、クラスをアクティビティに変えずに、ユーザーがBluetoothリクエストに対して[はい]または[いいえ]をクリックしたかどうかを確認するにはどうすればよいですか?activity.startActivityForResult(enableBtIntent, 0); ありがとうございました

4

1 に答える 1

2

なぜあなたはこれをやっている?クラスにすべてのBluetooth機能を含めるだけActivityです...このために個別のクラスを作成する必要はありません。

とにかく、onActivityResultコードをコピーしてActivityファイルに貼り付けるだけです。

protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
    System.out.println(resultCode);
    if (resultCode == 0) {
        System.out.println("one");
    } else {
        System.out.println("two");
    }
}

を呼び出すために呼び出されるようonActivityResultに、Printerクラスに含めることは意味がありません。onActivityResultActivity

于 2012-06-22T16:58:07.560 に答える