调用startActivityForResult后onActivityForResult中的resultCode出错

时间:2013-08-16 17:17:07

标签: android onactivityresult

我通过Intent启用蓝牙服务并调用startActivityForResult()方法,如下所示:

public void enableBT(BluetoothAdapter adapter) {
        if (!adapter.isEnabled()) {
            Intent enableBTIntent = new Intent(
                    BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
            startActivityForResult(enableBTIntent, ENABLE_BT_INTENT);
        }
    }

在此代码中,adapterBluetoothAdapter个对象。在此之后,我按如下方式致电onActivityResult()

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (requestCode == ENABLE_BT_INTENT)
            if(resultCode == Activity.RESULT_OK)
                 button.setText("Done");

但是在启用蓝牙后,button.setText("Done");代码不会被执行。

问题出在哪里?

感谢。

1 个答案:

答案 0 :(得分:2)

button.setText(resultCode);会出错,因为resultCodeint,所以它会查找resource id。请参阅setText()的两种方法。你可以使用

button.setText(String.valueOf(resultCode));

如果您希望显示String的{​​{1}}值。否则请更好地解释您想要发生的事情。