2017-06-27 1 views
-1

多分この回答は存在しますが、私はここやgoogleを見つけることができませんでした。ライブラリーに非アクティビティクラスを知らせる方法は?

私は、ハンドラ(非アクティビティクラス)という静的シングルトンクラスを持っています。私は自分のプロジェクトにライブラリを追加しました。ライブラリのMainActivityにハンドラを使いたいと思います。

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

MainActivityでcom.mytest.Handlerをインポートしようとしましたが、機能しませんでした。 おそらくライブラリに依存関係を追加する必要がありますか?私は本当に失われています。

EDITED:

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

クラスcom.mytest.Handler public? – DeKaNszn

+0

はい。 public class Handler –

+0

コード(アクティビティとグラデーションスクリプト)を追加できますか? – DeKaNszn

答えて

0

を使用できlibrary.Youにインポートすることで、ライブラリからアプリケーションメソッドを呼び出すべきではありません代わりにリスナー。例えば

https://stackoverflow.com/a/31626226/2176401

ライブラリクラスがありObservableクラスに対応し、アプリケーションクラスがObserverを実装する必要があります。その後、notifyObserversメソッドを使用して、ハンドラクラスで記述したコードを呼び出すことができます

関連する問題