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.util.TypedValue;
214a58e0859ab43f004d44868ff48589e329a80cb5Chris Banesimport android.view.LayoutInflater;
224a58e0859ab43f004d44868ff48589e329a80cb5Chris Banesimport android.view.ViewGroup;
234a58e0859ab43f004d44868ff48589e329a80cb5Chris Banesimport android.widget.TextView;
244a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes
25def582a5836579a3fadabfdbe4413cb1652bf098Aurimas Liutikasimport androidx.recyclerview.widget.RecyclerView;
26def582a5836579a3fadabfdbe4413cb1652bf098Aurimas Liutikas
2727644c071b7fc0e1e4f91194f2a08b4aa2cf1465Aurimas Liutikasimport com.example.android.support.design.R;
2827644c071b7fc0e1e4f91194f2a08b4aa2cf1465Aurimas Liutikas
294a58e0859ab43f004d44868ff48589e329a80cb5Chris Banesimport java.util.ArrayList;
304a58e0859ab43f004d44868ff48589e329a80cb5Chris Banesimport java.util.Collections;
314a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes
324a58e0859ab43f004d44868ff48589e329a80cb5Chris Banespublic class SimpleStringRecyclerViewAdapter
334a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes        extends RecyclerView.Adapter<SimpleStringRecyclerViewAdapter.ViewHolder> {
344a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes
354a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes    private int mBackground;
364a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes
374a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes    private ArrayList<String> mValues;
384a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes
394a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes    public static class ViewHolder extends RecyclerView.ViewHolder {
404a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes        public String mBoundString;
414a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes        public TextView mTextView;
424a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes
434a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes        public ViewHolder(TextView v) {
444a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes            super(v);
454a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes            mTextView = v;
464a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes        }
474a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes
484a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes        @Override
494a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes        public String toString() {
504a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes            return super.toString() + " '" + mTextView.getText();
514a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes        }
524a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes    }
534a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes
544a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes    public String getValueAt(int position) {
554a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes        return mValues.get(position);
564a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes    }
574a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes
584a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes    public SimpleStringRecyclerViewAdapter(Context context, String[] strings) {
594a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes        TypedValue val = new TypedValue();
604a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes        if (context.getTheme() != null) {
614a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes            context.getTheme().resolveAttribute(R.attr.selectableItemBackground, val, true);
624a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes        }
634a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes        mBackground = val.resourceId;
644a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes        mValues = new ArrayList<>();
654a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes        Collections.addAll(mValues, strings);
664a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes    }
674a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes
684a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes    @Override
694a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
704a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes        TextView textView = (TextView) LayoutInflater.from(parent.getContext())
714a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes                .inflate(android.R.layout.simple_list_item_1, parent, false);
724a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes        textView.setBackgroundResource(mBackground);
734a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes        return new ViewHolder(textView);
744a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes    }
754a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes
764a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes    @Override
774a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes    public void onBindViewHolder(ViewHolder holder, int position) {
784a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes        holder.mBoundString = mValues.get(position);
794a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes        holder.mTextView.setText(position + ": " + mValues.get(position));
804a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes    }
814a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes
824a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes    @Override
834a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes    public int getItemCount() {
844a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes        return mValues.size();
854a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes    }
864a58e0859ab43f004d44868ff48589e329a80cb5Chris Banes}
87