Если есть проблема с методом onActivityResult
, который находится внутри класса фрагмента, и вы хотите обновить что-то, что также находится внутри класса фрагмента, используйте:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if(resultCode == Activity.RESULT_OK)
{
// If the user had agreed to enabling Bluetooth,
// populate the ListView with all the paired devices.
this.arrayDevice = new ArrayAdapter<String>(this.getContext(), R.layout.device_item);
for(BluetoothDevice bd : this.btService.btAdapater.getBondedDevices())
{
this.arrayDevice.add(bd.getAddress());
this.btDeviceList.setAdapter(this.arrayDevice);
}
}
super.onActivityResult(requestCode, resultCode, data);
}
Просто добавьте this.variable
, как показано в коде выше. В противном случае метод будет вызван в родительском действии, и переменная не будет обновлена для текущего экземпляра.
Я также проверил это, поместив этот блок кода в MainActivity
, заменив this
классом HomeFragment
и установив переменные статическими. Я получил результаты, как и ожидал.
Так что, если вы хотите, чтобы класс фрагмента имел собственную реализацию onActivityResult
, ответом является приведенный выше пример кода.