2017-01-14 10 views
1

私のアプリケーションでfirebase remote config機能を使用しようとしています。しかし、エラーが発生しています "メソッド 'getBaseContext()'を解決できません。私のクラスは以下のようなBaseAdapterを拡張しています。私は助けてくださいメソッドを使用するように制限されています。クラス 'BaseAdapterのgetBaseContext()'を解決できません

public class CustomAdapter_new extends BaseAdapter { 
..... 
...... 
........ 
     private void initRemoteConfig() { 
     mRemoteConfig = FirebaseRemoteConfig.getInstance(); 

     Resources res = context.getResources(); 

     HashMap<String, Object> defaults = new HashMap<>(); 
     defaults.put("claimStatusEnquiry", context.getResources().getString(R.string.claimStatusEnquiry));  defaults.put("locateYourPfOffice", context.getResources().getString(R.string.locateYourOffice)); 
     defaults.put("faq", context.getResources().getString(R.string.faq)); 

     mRemoteConfig.setDefaults(defaults); 
     FirebaseRemoteConfigSettings remoteConfigSettings = new FirebaseRemoteConfigSettings.Builder() 
       .setDeveloperModeEnabled(true) 
       .build(); 
     mRemoteConfig.setConfigSettings(remoteConfigSettings); 
     fetchRemoteConfigValues(); 
    } 

    private void fetchRemoteConfigValues() { 
     long cacheExpiration = 600; 

     //expire the cache immediately for development mode. 
     if (mRemoteConfig.getInfo().getConfigSettings().isDeveloperModeEnabled()) { 
      cacheExpiration = 0; 
     } 

     mRemoteConfig.fetch(cacheExpiration) 
       .addOnCompleteListener(this, new OnCompleteListener<Void>() { 
        @Override 
        public void onComplete(Task<Void> task) { 
         if (task.isSuccessful()) { 
          // task successful. Activate the fetched data 
          mRemoteConfig.activateFetched(); 

         } else { 
          //task failed 
          Toast.makeText(getBaseContext(), "Please Connect To Internet!!", Toast.LENGTH_SHORT).show(); 
         } 
        } 
       }); 
    } 
    } 
+0

コンパイラは存在しません。あなたのクラスは 'getBaseContext()'というメソッドを持っていません。これを自分で提供するか、['BaseAdapter'](https://developer.android.com/reference/android/widget/BaseAdapter.html)がこの方法を提供しないため、拡張する正しいクラスを見つけ出す必要があります。 –

+0

'fetchRemoteConfigValues()'はどうやって呼びますか? –

+0

'リソースres = context.getResources();'この行の 'context'とは何ですか?それを宣言して初期化したのはどこですか? –

答えて

2

コンパイラは存在しません。あなたのクラスにはgetBaseContext()というメソッドはありません。 BaseAdapterはこの方法を提供していません。ただし、Toastを作成するにはContextオブジェクトが必要です。 Contextにアクセスするには多くの方法があります。それはあなただけcontextgetBaseContext()を置き換える必要があり、あなたがライン

Resources res = context.getResources(); 

ほとんどの場合にそれを使用するので、あなたはすでに利用可能なものを持っていることが表示されます:

Toast.makeText(context, ...).show(); 
私は強くあなたが変数のスコープの詳細については示唆

、クラスフィールド、およびメソッドパラメータです。これらはすべてJavaの基本概念です。これらがすべてどのように機能するのか分かっていれば、はるかに簡単にAndroidアプリを書くことができます

+0

私のコードを編集しました。問題を確認してください。エラー:(213,9)エラー:クラスCustomAdapter_newのメソッドfetchRemoteConfigValuesを指定された型に適用することはできません。これは、「fetchRemoteConfigValues() 必須:コンテキスト が見つかりました:引数なし 理由:実際の引数リストと仮引数リストの長さが異なります –

+0

@ArbazAlamこのエラーは、あなたが 'fetchRemoteConfigValues()'メソッドにパラメータを送る必要があることを伝えています。 –

+0

@ArbazAlam最近編集したコードに基づいて、私は提案された解決策を修正しました。あなたが投稿したコードにまだ詳細が不足しているため、これは推測された推測です。 –

関連する問題