2016-07-12 20 views
2

Help。 RecyclerViewに何も表示されない理由はわかりません。アダプターの私の実装は正しいです。どこが間違っているのか分かりません。RecyclerViewに何も表示されません

ここで断片クラスです:

public class RemittanceFragment extends Fragment implements View.OnClickListener { 
private static final String ARG_PARAM1 = "param1"; 
private static final String ARG_PARAM2 = "param2"; 
private String mParam1; 
private String mParam2; 

@BindView(R.id.remit_cancel_view) 
View remitCancelView; 

@BindView(R.id.remit_checkpaid_view) 
View remitCheckPaidView; 

@BindView(R.id.remit_create_view) 
View remitCreateView; 

@BindView(R.id.remit_main_menu) 
View remitMainMenuView; 

@BindView(R.id.btn_cancel) 
Button btnCancel; 

@BindView(R.id.btn_checkpaid) 
Button btnCheckPaid; 

@BindView(R.id.btn_create) 
Button btnCreate; 

@BindView(R.id.btn_back) 
TextView btnGoBack; 

@BindView(R.id.btn_back2) 
TextView btnGoBack2; 

@BindView(R.id.remit_header_title) 
TextView tvRemitHeaderTitle; 

@BindView(R.id.remit_cancel_list) 
RecyclerView cancelRecyclerView; 


public RemittanceFragment() { 
    // Required empty public constructor 
} 

public static RemittanceFragment newInstance() { 
    RemittanceFragment fragment = new RemittanceFragment(); 
    Bundle args = new Bundle(); 
    fragment.setArguments(args); 
    return fragment; 
} 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    if (getArguments() != null) { 
    } 
} 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    View view = inflater.inflate(R.layout.fragment_remit_menu, container, false); 
    ButterKnife.bind(this, view); 

    remitCancelView.setVisibility(View.GONE); 
    remitCheckPaidView.setVisibility(View.GONE); 
    remitCreateView.setVisibility(View.GONE); 

    btnCancel.setOnClickListener(this); 
    btnCreate.setOnClickListener(this); 
    btnCheckPaid.setOnClickListener(this); 
    btnGoBack.setOnClickListener(this); 
    btnGoBack2.setOnClickListener(this); 

    return view; 
} 

@Override 
public void onClick(View v) { 
    remitMainMenuView.setVisibility(View.GONE); 

    switch (v.getId()) { 
     case R.id.btn_cancel: 
      remitCancelView.setVisibility(View.VISIBLE); 
      tvRemitHeaderTitle.setText("CANCEL\nREMITTANCE"); 
      populateData(); 
      break; 
     case R.id.btn_checkpaid: 
      remitCheckPaidView.setVisibility(View.VISIBLE); 
      tvRemitHeaderTitle.setText("CHECK/PAID\nREMITTANCE"); 
      break; 
     case R.id.btn_create: 
      remitCreateView.setVisibility(View.VISIBLE); 
      tvRemitHeaderTitle.setText("CREATE\nREMITTANCE"); 
      break; 
     case R.id.btn_back: 
     case R.id.btn_back2: 
      remitMainMenuView.setVisibility(View.VISIBLE); 
      remitCancelView.setVisibility(View.GONE); 
      remitCheckPaidView.setVisibility(View.GONE); 
      remitCreateView.setVisibility(View.GONE); 
      tvRemitHeaderTitle.setText("REMITTANCE"); 
      break; 
     default: 
      break; 
    } 

} 

public void populateData() { 
    List<RemitTransaction> transactions = new ArrayList<>(); 
    transactions = RemitTransaction.createRemitTransactionList(); 

    RemitTransactionListAdapter adapter = new RemitTransactionListAdapter 
      (transactions, getActivity()); 

    cancelRecyclerView.setAdapter(adapter); 
    cancelRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity())); 
} 

public static class RemitTransaction { 
    private String mRefno; 
    private String mDate; 
    private String mMsisdn; 
    private String mAmount; 

    public RemitTransaction(String refno, String date, String msisdn, String amount) { 
     mRefno = refno; 
     mDate = date; 
     mMsisdn = msisdn; 
     mAmount = amount; 
    } 

    public String getmRefno() { 
     return mRefno; 
    } 

    public String getmDate() { 
     return mDate; 
    } 

    public String getmMsisdn() { 
     return mMsisdn; 
    } 

    public String getmAmount() { 
     return mAmount; 
    } 

    public static ArrayList<RemitTransaction> createRemitTransactionList() { 
     ArrayList<RemitTransaction> transactions = new ArrayList<>(); 
     for (int n = 0; n < 4; n++) { 
      transactions.add(n, new RemitTransaction(
        "REF01253123" + n, 
        "July " + n + ", 2016", 
        "0920987654" + n, 
        "100" + n)); 

     } 

     return transactions; 
    } 
} 

public class RemitTransactionListAdapter 
     extends RecyclerView.Adapter<RemitTransactionListAdapter.CancelVH>{ 

    private List<RemitTransaction> mList; 
    private Context mContext; 

    public RemitTransactionListAdapter(List<RemitTransaction> list, Context context) { 
     mList = list; 
     mContext = context; 
    } 

    private Context getContext() { 
     return mContext; 
    } 

    @Override 
    public CancelVH onCreateViewHolder(ViewGroup parent, int viewType) { 
     Context context = getContext(); 
     View v = LayoutInflater.from(context).inflate(R.layout.remit_cancel_list_item, parent, false); 
     return new CancelVH(v); 
    } 

    @Override 
    public void onBindViewHolder(CancelVH holder, int position) { 
     RemitTransaction transaction = mList.get(position); 

     holder.cancelRefno.setText(transaction.getmRefno()); 
     holder.cancelAmount.setText(transaction.getmAmount()); 
     holder.cancelDate.setText(transaction.getmDate()); 
     holder.cancelMsisdn.setText(transaction.getmMsisdn()); 

    } 

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

    public class CancelVH extends RecyclerView.ViewHolder { 
     @BindView(R.id.remit_item_refno) TextView cancelRefno; 
     @BindView(R.id.remit_item_amount) TextView cancelAmount; 
     @BindView(R.id.remit_item_date) TextView cancelDate; 
     @BindView(R.id.remit_item_msisdn) TextView cancelMsisdn; 

     public CancelVH(View itemView) { 
      super(itemView); 
      ButterKnife.bind(this, itemView); 
     } 
    } 
} 
} 

そしてここでは、レイアウトファイルです:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:background="@color/utility_white" 
android:paddingTop="@dimen/dimen_margin_vertical_extra_large"> 


<android.support.v7.widget.RecyclerView 
    android:id="@+id/remit_cancel_list" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" /> 

</LinearLayout> 

そしてここlist_itemレイアウトです:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" 
android:layout_width="match_parent" 
android:layout_height="match_parent"> 

<TextView 
    android:id="@+id/remit_item_refno" 
    style="@style/RemitListItem" 
    android:text="VW832191" 
    android:textStyle="bold" 
    android:layout_alignParentStart="true"/> 

<TextView 
    android:id="@+id/remit_item_amount" 
    style="@style/RemitListItem" 
    android:text="100.00" 
    android:textStyle="bold" 
    android:layout_alignParentEnd="true"/> 

<TextView 
    android:id="@+id/remit_item_date" 
    style="@style/RemitListItem" 
    android:text="2016-07-20" 
    android:layout_alignParentStart="true" 
    android:layout_below="@+id/remit_item_refno"/> 


<TextView 
    android:id="@+id/remit_item_msisdn" 
    style="@style/RemitListItem" 
    android:text="09273450686" 
    android:layout_alignParentEnd="true" 
    android:layout_below="@+id/remit_item_amount"/> 

</RelativeLayout> 

は、あなたがすべて私を助けることができる願っています。ありがとうございました!

+0

これはすべてあなたのXMLですか? 'remit_cancel_view'、' remit_checkpaid_view'などはどこに定義されていますか?あなたのフラグメントで定義されているビューの束にバインドされているように見えますが、XMLではありません。 – Neil

+0

こんにちは@Neil私は 'remit_cancel_view'を使っています。他のビューは' 'タグの中に入っています – Menardo

+0

@ imaN.NeoFighTの答えを見てください。それはあなたの問題を解決するかもしれません。 – Neil

答えて

0

サポートライブラリ23.2.0 wrap_contentの以前のバージョンでは(今の最新バージョンは24.0.0です)完全にRecyclerViewため、およびサポートライブラリ23.2.0とし、wrap_contentの仕事の上に動作しない、 私はそれがあなたの問題であると思います。

関連する問題