SimpleStringRecyclerViewAdapter.java revision 27644c071b7fc0e1e4f91194f2a08b4aa2cf1465
14a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes/*
24a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes * Copyright (C) 2015 The Android Open Source Project
34a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes *
44a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes * Licensed under the Apache License, Version 2.0 (the "License");
54a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes * you may not use this file except in compliance with the License.
64a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes * You may obtain a copy of the License at
74a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes *
84a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes *      http://www.apache.org/licenses/LICENSE-2.0
94a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes *
104a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes * Unless required by applicable law or agreed to in writing, software
114a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes * distributed under the License is distributed on an "AS IS" BASIS,
124a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
134a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes * See the License for the specific language governing permissions and
144a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes * limitations under the License.
154a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes */
164a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes
174a58e0859ab43f004d44868ff48589e329a80cb5Chris Banespackage com.example.android.support.design.widget;
184a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes
194a58e0859ab43f004d44868ff48589e329a80cb5Chris Banesimport android.content.Context;
204a58e0859ab43f004d44868ff48589e329a80cb5Chris Banesimport android.support.v7.widget.RecyclerView;
214a58e0859ab43f004d44868ff48589e329a80cb5Chris Banesimport android.util.TypedValue;
224a58e0859ab43f004d44868ff48589e329a80cb5Chris Banesimport android.view.LayoutInflater;
234a58e0859ab43f004d44868ff48589e329a80cb5Chris Banesimport android.view.ViewGroup;
244a58e0859ab43f004d44868ff48589e329a80cb5Chris Banesimport android.widget.TextView;
254a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes
2627644c071b7fc0e1e4f91194f2a08b4aa2cf1465Aurimas Liutikasimport com.example.android.support.design.R;
2727644c071b7fc0e1e4f91194f2a08b4aa2cf1465Aurimas Liutikas
284a58e0859ab43f004d44868ff48589e329a80cb5Chris Banesimport java.util.ArrayList;
294a58e0859ab43f004d44868ff48589e329a80cb5Chris Banesimport java.util.Collections;
304a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes
314a58e0859ab43f004d44868ff48589e329a80cb5Chris Banespublic class SimpleStringRecyclerViewAdapter
324a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes        extends RecyclerView.Adapter<SimpleStringRecyclerViewAdapter.ViewHolder> {
334a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes
344a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes    private int mBackground;
354a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes
364a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes    private ArrayList<String> mValues;
374a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes
384a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes    public static class ViewHolder extends RecyclerView.ViewHolder {
394a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes        public String mBoundString;
404a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes        public TextView mTextView;
414a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes
424a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes        public ViewHolder(TextView v) {
434a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes            super(v);
444a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes            mTextView = v;
454a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes        }
464a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes
474a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes        @Override
484a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes        public String toString() {
494a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes            return super.toString() + " '" + mTextView.getText();
504a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes        }
514a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes    }
524a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes
534a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes    public String getValueAt(int position) {
544a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes        return mValues.get(position);
554a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes    }
564a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes
574a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes    public SimpleStringRecyclerViewAdapter(Context context, String[] strings) {
584a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes        TypedValue val = new TypedValue();
594a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes        if (context.getTheme() != null) {
604a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes            context.getTheme().resolveAttribute(R.attr.selectableItemBackground, val, true);
614a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes        }
624a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes        mBackground = val.resourceId;
634a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes        mValues = new ArrayList<>();
644a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes        Collections.addAll(mValues, strings);
654a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes    }
664a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes
674a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes    @Override
684a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
694a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes        TextView textView = (TextView) LayoutInflater.from(parent.getContext())
704a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes                .inflate(android.R.layout.simple_list_item_1, parent, false);
714a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes        textView.setBackgroundResource(mBackground);
724a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes        return new ViewHolder(textView);
734a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes    }
744a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes
754a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes    @Override
764a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes    public void onBindViewHolder(ViewHolder holder, int position) {
774a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes        holder.mBoundString = mValues.get(position);
784a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes        holder.mTextView.setText(position + ": " + mValues.get(position));
794a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes    }
804a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes
814a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes    @Override
824a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes    public int getItemCount() {
834a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes        return mValues.size();
844a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes    }
854a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes}
86