2016-11-27 4 views
0

からそれぞれ下のための機能を追加します。 これが私のアプリです:は、私は私のリストビューに異なるボタンの設定されているBottomsheet

http://imgur.com/a/dFSTF

MyBottomSheetDialogFragment:

import android.os.Bundle; 
import android.support.annotation.Nullable; 
import android.support.design.widget.BottomSheetDialogFragment; 
import android.support.v7.widget.LinearLayoutManager; 
import android.support.v7.widget.RecyclerView; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 

import java.util.ArrayList; 
import java.util.List; 

/** 
* Created by sasank on 26-11-2016. 
*/ 

public class MyBottomSheetDialogFragment extends BottomSheetDialogFragment { 

    String mString; 
    private RecyclerView mRecyclerView; 
    private VerticalListAdapter mVerticalListAdapter; 

    static MyBottomSheetDialogFragment newInstance(String string) { 
     MyBottomSheetDialogFragment f = new MyBottomSheetDialogFragment(); 
     Bundle args = new Bundle(); 
     args.putString("string", string); 
     f.setArguments(args); 
     return f; 
    } 

    @Override 
    public void onCreate(@Nullable Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     mString = getArguments().getString("string"); 

    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     View v = inflater.inflate(R.layout.bottom_sheet_modal_list, container, false); 
     mRecyclerView = (RecyclerView) v.findViewById(R.id.recycler_view); 
     return v; 

    } 

    @Override 
    public void onActivityCreated(Bundle savedInstanceState) { 
     super.onActivityCreated(savedInstanceState); 

     List<Model> list = new ArrayList<Model>(); 
     list.add(new Model(R.drawable.ic_call_black_24dp, "Call")); 
     list.add(new Model(R.drawable.ic_chat_black_24dp, "Chat")); 
     list.add(new Model(R.drawable.ic_android_black_24dp, "Android")); 
     list.add(new Model(R.drawable.ic_location_on_black_24dp, "Location")); 
     list.add(new Model(R.drawable.ic_call_black_24dp, "Call")); 
     list.add(new Model(R.drawable.ic_chat_black_24dp, "Chat")); 
     list.add(new Model(R.drawable.ic_android_black_24dp, "Android")); 
     list.add(new Model(R.drawable.ic_location_on_black_24dp, "Location")); 


     mVerticalListAdapter = new VerticalListAdapter(getContext(), list); 

     LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getContext(), LinearLayoutManager.VERTICAL, false); 

     mRecyclerView.setLayoutManager(linearLayoutManager); 
     mRecyclerView.setAdapter(mVerticalListAdapter); 


    } 
} 

マイverticalListAdapter。

package com.example.user.bottomsheet_android; 

import android.content.Context; 
import android.support.v7.widget.RecyclerView; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.ImageView; 
import android.widget.TextView; 

import java.util.List; 


public class VerticalListAdapter extends RecyclerView.Adapter<VerticalListAdapter.MyViewHolder>{ 

    private Context mContext; 
    private List<Model> mModelList; 

    public VerticalListAdapter(Context context, List<Model> list) { 
     this.mContext = context; 
     this.mModelList = list; 

    } 

    @Override 
    public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
     View itemView = LayoutInflater.from(parent.getContext()) 
       .inflate(R.layout.modal_list_item, parent, false); 

     return new MyViewHolder(itemView); 


    } 

    @Override 
    public void onBindViewHolder(MyViewHolder holder, int position) { 
     holder.txtView.setText(mModelList.get(position).getName()); 
     holder.imgView.setImageDrawable(mContext.getResources().getDrawable(mModelList.get(position).getImgId())); 

    } 

    @Override 
    public int getItemCount() 
    { 
     return mModelList.size(); 
    } 

    public class MyViewHolder extends RecyclerView.ViewHolder { 
     public TextView txtView; 
     public ImageView imgView; 

     public MyViewHolder(View view) { 
      super(view); 
      txtView = (TextView) view.findViewById(R.id.txtView); 
      imgView = (ImageView) view.findViewById(R.id.imgView); 





     } 
    } 


} 

私の目標は、下のシートに表示されている各ボタンの機能を追加することです。

説明が必要な場合は、コメントを残してください。

答えて

0

あなたのonBindViewHolderメソッドでは、私はonClickListenerを配置し、switch-case構造体またはいくつかの異なるif-elseif文を使用します。たとえば、スイッチケースは次のようになります。

holder.txtView.setOnClickListener(new OnClickListener() { 
    @Override 
    public void onClick(View view) { 
     switch (holder.getAdapterPosition()) { 
      case 1: 
       // do call related things here 
       . 
       . 
       . 
       break; 
      case 2: 
       // do chat related things here 
       . 
       . 
       . 
       break; 

     } 
    } 
} 

などとなります。 if文と同様のものを実装できます

関連する問題