2017-06-27 3 views
-1

Peut-être que cette réponse existe mais je n'ai pas pu la trouver ici ni google.comment laisser une bibliothèque connaître une classe de non-activité?

J'ai une classe singleton statique nommée Handler (classe de non-activité). J'ai ajouté une bibliothèque à mon projet et je voudrais utiliser le gestionnaire dans MainActivity de la bibliothèque.

-- app 
    --java 
     --com.mytest 
      --Handler 
-- library 
    --java 
     --com.mylib 
      --MainActivity 

J'ai essayé d'importer com.mytest.Handler dans MainActivity mais cela ne fonctionnait pas. Peut-être devrais-je ajouter une dépendance à la bibliothèque? Je suis vraiment perdu.

ÉDITÉ:

Code MainActivity:

public class MainActivity extends AppCompatActivity { 
    private Button mButtonMoreApps = null; 
    private ArrayList<String> mListUrl = null; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(com.mylib.R.layout.main_activity); 

    } 
} 

mylib gradle:

apply plugin: 'com.android.library' 

android { 
    compileSdkVersion 25 
    buildToolsVersion "25.0.2" 
    defaultConfig { 
     minSdkVersion 15 
     targetSdkVersion 25 
     versionCode 1 
     versionName "1.0" 
     testInstrumentationRunner  "android.support.test.runner.AndroidJUnitRunner" 
    } 
    buildTypes { 
     debug { 
      signingConfig signingConfigs.config 
      debuggable true 
     } 
    } 
} 

dependencies { 
    compile fileTree(include: ['*.jar'], dir: 'libs') 
    androidTestCompile('com.android.support.test.espresso:espresso- core:2.2.2', { 
     exclude group: 'com.android.support', module: 'support-annotations' 
    }) 
    compile "com.android.support:cardview-v7:25.3.1" 
    compile 'com.android.support:design:25.3.1' 
    compile 'com.android.support:customtabs:25.3.1' 
    compile 'com.android.support:appcompat-v7:25.3.1' 
    compile 'com.android.support.constraint:constraint-layout:1.0.2' 
    compile 'com.google.firebase:firebase-core:10.2.1' 
    compile 'com.google.firebase:firebase-database:10.2.1' 
    compile 'com.google.firebase:firebase-ads:10.2.1' 
    compile 'com.google.firebase:firebase-crash:10.2.1' 
    compile 'com.facebook.android:audience-network-sdk:4.20.0' 
    compile ('com.facebook.android:facebook-android-sdk:4.20.0') // app  invites 
    { 
     exclude group: 'com.android.support' 
    } 
    testCompile 'junit:junit:4.12' 
} 
+0

Votre classe com.mytest.Handler public? – DeKaNszn

+0

oui. public class Handler –

+0

Pouvez-vous ajouter du code (activité et gradle script)? – DeKaNszn

Répondre

0

Vous ne devriez pas appeler la méthode d'application à partir d'une bibliothèque par l'importation à library.You peut utiliser auditeurs à la place.

Pour un exemple: https://stackoverflow.com/a/31626226/2176401

classe Library correspond à la classe y Observable et votre classe d'application devrait mettre en œuvre Observer. Après cela, vous pouvez utiliser la méthode notifyObservers pour appeler le code que vous écrivez dans Handler class