Pam*_*bos 10 android android-fragments android-activity
我在一个显示蓝牙设备ListView.我在尝试了Activity之前和它的工作,但现在我必须包括这ListView在Fragment
很明显,这里有一两件不属于的东西,比如registerReceiver,unregisterReceiver和RESULT_CANCELED.
protected void onResume() {
registerReceiver(receiver, filter);
filter = new IntentFilter(BluetoothAdapter.ACTION_DISCOVERY_STARTED);
registerReceiver(receiver, filter);
filter = new IntentFilter(BluetoothAdapter.ACTION_DISCOVERY_FINISHED);
registerReceiver(receiver, filter);
filter = new IntentFilter(BluetoothAdapter.ACTION_STATE_CHANGED);
registerReceiver(receiver, filter);
}
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
unregisterReceiver(receiver);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
if(resultCode == RESULT_CANCELED){
Toast.makeText(getActivity() , "El Bluetooth debe estar activado para continuar", Toast.LENGTH_SHORT).show();
getActivity().finish();
}
}
Run Code Online (Sandbox Code Playgroud)
与启动线registerReceiver,unegisterReceiver并if(resultCode==RESULT_CANCELED){在给我的问题.
作为一个附加的事实,我试图将它改为Activity而不是Fragment,但是我的Main类有一个错误,因为我正在使用Fragments.
ast*_*ter 30
所有这些方法和变量都属于Activity类.因此,请考虑使用父级Activity of Fragment的上下文来调用它们.
您可以将所需方法称为:
getActivity().registerReceiver(receiver, filter);
Run Code Online (Sandbox Code Playgroud)
和
getActivity().unregisterReceiver(receiver);
Run Code Online (Sandbox Code Playgroud)
if(resultCode==RESULT_CANCELED){
可以替换为
if(resultCode == Activity.RESULT_CANCELED){
希望这能解决你的问题.
| 归档时间: |
|
| 查看次数: |
15850 次 |
| 最近记录: |