对于蓝牙库,我想调用startActivityForResult
启用蓝牙。我想在我自己的图书馆项目中这样做。问题是sartActivityForResult
仅适用于活动,我的库不是活动,当然我使用此库项目的项目正在进行活动。我尝试了两件事
1。
让我的库扩展Activity,所以我创建的对象就像普通POJO
一样。因此,当调用startActivityForResult时,它会抛出一个空指针。
2。 试图让我的Activity将它传递到我的库对象的构造函数中。我无法获得活动对象,只能获得上下文,但这无济于事。
我该怎么办?
编辑:一些代码
我的图书馆项目中有以下课程:
public class mylib
{
public mylib()
{
// Do some bluetooth setup thing here
// figure out that bluetooth is not enabled so try to enable it now
Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
}
onActivityResult()
{
// Report back that BT is enabled now
}
}
然后我当然是我的Android应用程序在onCreate()中使用这个库项目我做这样的事情
public class Myactivity() extends Activity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
// do all the normal stuff
mylib pojo = new mylib(); // This creates a POJO which needs to startActivityForResults(...), see above code
}
}
我上面提到的两个选项
我不知道如何说服mylib调用startActivityForResult
public class mylib extends Activity
似乎没有做到这一点。
希望能让它更清晰一点。
答案 0 :(得分:2)
您可以创建java类的构造函数,该构造函数具有类型为Activity的参数,如下所示
public class MyClass
{
private Activity activity;
public MyClass ( Activity activity )
{
this.activity = activity;
}
}
现在您可以使用此activity
变量从Java类调用startAcvitiyForResult。