2016-06-29 12 views
1

私のアプリケーションにBottomSheetを実装しようとしています。私はアンドロイドを学んでいます。私は図書館のページhereで与えられた指示に従ってそれを実装しました。私は以下のようなJavaコードを使用しています。アプリケーションでBottomSheetを実装する

findViewById(R.id.butShare).setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       new BottomSheet.Builder(QuoteViewActivity.this) 
       .setSheet(R.menu.grid_sheet) 
       .grid() 
       .setTitle("Lets Some Fun") 
       .setListener(QuoteViewActivity.this) 
       .show(); 
      } 
     }); 

が、私は、私はメニューのXMLを作成している

The method setListener(BottomSheetListener) in the type BottomSheet.Builder is not applicable for the arguments (QuoteViewActivity) 

のようなエラーを取得していますが、同様のメニューフォルダにgrid_sheetと呼ばれます。どうすればそのメニューを機能させることができますか?

+0

これは、使用されるライブラリである。 – sJy

+0

こんにちは! @sJy私は問題のリンクを追加しました。ありがとう –

答えて

1

のようなエラーがsetListener(QuoteViewActivity.this)であることにsetListenerを持ってここに

.setListener(QuoteViewActivity.this) 

です。 SetListener()はBottomSheetListenerがActivityコンテキストではないと想定しています。 setListener(new BottomSheetListener()) &を次のようにオーバーライドしてみてください。

new BottomSheet.Builder(MainActivity.this) 
        .setSheet(R.menu.menu) 
        .grid() 
        .setTitle("Lets Some Fun") 
        .setListener(new BottomSheetListener() { 
         @Override 
         public void onSheetShown(@NonNull BottomSheet bottomSheet) { 

         } 

         @Override 
         public void onSheetItemSelected(@NonNull BottomSheet bottomSheet, MenuItem menuItem) { 
           if(menuItem.getItemId() == R.id.share) { 
           Toast.makeText(MainActivity.this, "Share" , Toast.LENGTH_LONG).show(); 
          } 
         } 

         @Override 
         public void onSheetDismissed(@NonNull BottomSheet bottomSheet, int i) { 

         } 
        }) 
        .show(); 
+0

こんにちは! @sJy、それは.setListenerの私の問題を解決しました。メニューフォルダにあるgrid_sheet.xmlにメニューを作成しました。私のメニューがfacebookの場合、どうすればクリック可能にすることができますか?ありがとう –

+0

これは別の質問です。メニューのアイテムは既にクリック可能です。 onSheetItemSelected()内のBot​​tomSheetのメニュー項目をクリックすることができます。 – sJy

+0

こんにちは!私は申し訳ありませんが、これは別の質問ですが、私はFacebookと呼ばれるメニューを持っていて、クリックフェイスブックで私は "これはFacebookのような"私は何をすべきですか?私は混乱しており、再度ご質問の質問申し訳ありません –

0

new BottomSheet.Builder(QuoteViewActivity.this)onCreateメソッドに保存されたアクティビティコンテキストまたはonAttach(Context mContext)メソッドで保存されたフラグメントを渡します。

これが役に立ちます。

+0

こんにちは! @Er。 Kaushik Kajavadara、もう少し説明できますか?ありがとうございました –

0

問題は、あなたがこの

.setListener(this) 
+0

こんにちは!@アイロンマン、私は "BottomSheet.Builder型のメソッドsetListener(BottomSheetListener)は引数(新しいView.OnClickListener(){})には適用されません"のような同じエラーが表示されます –

+0

@RajubhaiRathodは ' () 'コード内にあります。 – Ironman

+0

@RajubhaiRathodここにあなたの完全なアクティビティコードを投稿してください。 – Ironman