2017-02-27 17 views
-1

我正在制作一个库,我想要显示一个布局,它实际上告诉我的mPos设备是否连接了蓝牙。连接代码在库中,连接调用将从MainActivity开始。如何通过在Android中使用MainActivity上下文来显示布局

现在问题从这里开始:我想显示一些布局或在我的库中定义布局。这很好,我可以通过thisMainActivity上下文到我的图书馆。

要清楚我的库中的代码是不是从Activity 类可继承

请不要告诉我,你可以不用将磁带库连接。我只需要在我的库中显示布局,然后我想删除(拉)它,所以我的主要活动变得可见。它应该是一些东西NavigationController

+0

如果你有一个[mcve]添加,它可能有帮助 –

回答

0

在你的库类中创建一个静态方法。创建一个上下文对象,然后用静态方法接受上下文并相应地进行设置。现在,无论何时你第一次调用这个库,首先调用这个方法,然后你可以在代码中的任何地方使用上下文对象。提示不要将上下文声明为静态,它会导致内存泄漏不良。

+0

我已经有上下文。要点是如何使用该上下文来显示布局和删除布局。对不起,我不能让你这样做。 –

+0

所以你想操纵你的布局从那个非继承类的权利? – Remario

1

我想你是看着这个错误的方式。

您正在考虑[我的项目] - 开始 - > [活动]和[我的项目]处理活动所做的一切。实际上,因为操作系统(Android)只能运行活动(不是你的项目类独立),它应该是[活动] - 开始 - > [我的项目服务],它处理来自活动的消息。

当项目设置为这样时,您可以正常显示布局(与任何Activity一样)。您现有的项目类仍然可以做出所有决策,只是以相反的顺序开始。

这是用于任何跨平台应用程序(例如libgdx)的相同概念:该应用程序是运行您的通用代码的本机包装(活动)。

编辑:

当你只是想引发一些在活动时调用一个方法在自己的类,你可以使用一个回调接口:

public interface OnConnectionMadeListener { 
    void onConnectionMade(); 
} 

您的活动可以实现它

public class MainActivity extends Activity implements OnConnectionMadeListener { 

    private View mOverlay;   

    public void onCreate() { 
      ... 
      mOverlay = findViewById(R.id.overlay); 
      mOverlay.setVisibility(View.GONE); 
      new MyConnectionObject(this); //this will be your class that has the madeConnection() method 
    } 

    ... 

    public void onConnectionMade() { 
     //show the overlay 
     mOverlay.setVisibility(View.VISIBLE); 
    } 

} 

那么你的对象内部

public class MyConnectionObject { 

    private OnConnectionMadeListener mCallback; 

    public MyConnectionObject(OnConnectionMadeListener callback) { 
     ... 
     mCallback = callback; 
    } 

    public void madeConnection() { 
     ... 
     if (mCallback != null) { 
      mCallback.onConnectionMade(); 
     } 
    } 
} 
+0

这不是你在想什么。我只需要在我的MainActivity上显示一个动画视图,它将开始显示当我的电话到达公共无效madeConnection(){/ *我有MainActivity背景这里*/ } }主要活动将调用makeConnection方法并建立连接将显示一个布局,但其中定义的makeConnection方法不会从活动类继承。 –

+0

好吧,这不是你的问题所说的。在这种情况下,你应该使用回调。我会编辑我的答案。 –

+0

你可以给我如何执行此操作。以前我在iOS中做过这个工作。通过观看我可以在iOS中执行,但不知道我将如何在Android中实现这一点。感谢您理解我的问题。 –

1

正如您所说,您已经在该方法中使用了上下文。您可以使用系统级警报来显示该活动的完整窗口布局。您的活动将成为该提醒的主持人,并将继续在下面运行,但用户将无法看到该提醒,因为系统提醒视图占据了屏幕。

这是你如何能显示出与背景警报:https://stackoverflow.com/a/21182403/2105241

PS。这不是一个好的解决方案,使用系统警报:)

相关问题