Advertisement
uopspop

Untitled

Oct 10th, 2016
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.41 KB | None | 0 0
  1. package com.example.sam.drawerlayoutprac;
  2.  
  3. import android.content.Context;
  4. import android.os.Bundle;
  5. import android.support.v4.app.Fragment;
  6. import android.support.v7.widget.LinearLayoutManager;
  7. import android.support.v7.widget.RecyclerView;
  8. import android.view.LayoutInflater;
  9. import android.view.View;
  10. import android.view.ViewGroup;
  11. import android.widget.ImageView;
  12. import android.widget.TextView;
  13.  
  14. import java.util.ArrayList;
  15. import java.util.List;
  16.  
  17. public class HotelFragment extends Fragment {
  18.     @Override
  19.     public View onCreateView(LayoutInflater inflater, ViewGroup viewGroup, Bundle bundle){
  20.         super.onCreateView(inflater,viewGroup,bundle);
  21.         // get data
  22.         List<Spot> myListSpot = getSpots();
  23.         // get view
  24.         RecyclerView myRvSpot = (RecyclerView)inflater.inflate(R.layout.fragment_hotel,viewGroup,false);
  25.         if (myRvSpot != null){
  26.             myRvSpot.setLayoutManager(new LinearLayoutManager(getActivity()));
  27.             myRvSpot.setAdapter(new SpotAdapter(getActivity(), myListSpot));
  28.         }
  29.         // wrap up
  30.         return myRvSpot;
  31.     }
  32.  
  33.     private class SpotAdapter extends RecyclerView.Adapter<SpotAdapter.MyViewHolder> {
  34.         private Context context;
  35.         private List<Spot> myListSpot;
  36.         private LayoutInflater myLayoutInflater;
  37.  
  38.         public SpotAdapter(Context context, List<Spot> myListSpot) {
  39.             this.context = context;
  40.             this.myListSpot = myListSpot;
  41.             myLayoutInflater = LayoutInflater.from(context);
  42.         }
  43.  
  44.         // customed ViewHolder - 裝容器用
  45.         public class MyViewHolder extends RecyclerView.ViewHolder{
  46.             ImageView ivImage;
  47.             TextView tvHotel;
  48.             TextView tvPrice;
  49.             // 把拿到的到個view的資料一個個存好成實體變數
  50.             public MyViewHolder(View itemView) {
  51.                 super(itemView); // 必須使用這個父建構式,因為RecyclerView.ViewHolder沒有空參數的建構式 - 用父類別的實體變數來指向這個View物件,第90行會用到
  52.                 this.ivImage = (ImageView) itemView.findViewById(R.id.ivImage);
  53.                 this.tvHotel = (TextView) itemView.findViewById(R.id.tvHotel);
  54.                 this.tvPrice = (TextView) itemView.findViewById(R.id.tvPrice);
  55.             }
  56.         }
  57.  
  58.         @Override
  59.         public SpotAdapter.MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
  60.             View view = myLayoutInflater.inflate(R.layout.recycleview_item, parent, false);
  61.             return new SpotAdapter.MyViewHolder(view);
  62.         }
  63.  
  64.         @Override
  65.         public int getItemCount() {
  66.             return myListSpot.size();
  67.         }
  68.  
  69.         @Override
  70.         public void onBindViewHolder(SpotAdapter.MyViewHolder holder, int position) {
  71.             Spot mySpot = myListSpot.get(position);
  72.  
  73.             holder.ivImage.setImageResource(mySpot.getimgId());
  74.             holder.tvHotel.setText(mySpot.getHotelName());
  75.             holder.tvPrice.setText(Integer.toString(mySpot.getPrice()) + "$");
  76.         }
  77.     }// end class SpotAdapter
  78.  
  79.     private List<Spot> getSpots() {
  80.         List<Spot> spots = new ArrayList<>();
  81.         spots.add(new Spot(R.drawable.hotel1,"福華飯店",300));
  82.         spots.add(new Spot(R.drawable.hotel2,"青年旅館",100));
  83.         spots.add(new Spot(R.drawable.hotel3,"我家三樓房間",50));
  84.         return spots;
  85.     }
  86. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement