1 /* 2 * Copyright (C) 2015 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package com.example.android.wearable.datalayer.fragments; 18 19 import android.app.Fragment; 20 import android.content.Context; 21 import android.os.Bundle; 22 import android.support.annotation.Nullable; 23 import android.view.LayoutInflater; 24 import android.view.View; 25 import android.view.ViewGroup; 26 import android.widget.ArrayAdapter; 27 import android.widget.ListView; 28 import android.widget.TextView; 29 30 import com.example.android.wearable.datalayer.R; 31 32 /** 33 * A fragment that shows a list of DataItems received from the phone 34 */ 35 public class DataFragment extends Fragment { 36 37 private DataItemAdapter mDataItemListAdapter; 38 private TextView mIntroText; 39 private boolean mInitialized; 40 41 @Nullable 42 @Override onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)43 public View onCreateView(LayoutInflater inflater, ViewGroup container, 44 Bundle savedInstanceState) { 45 View view = inflater.inflate(R.layout.data_fragment, container, false); 46 ListView dataItemList = (ListView) view.findViewById(R.id.dataItem_list); 47 mIntroText = (TextView) view.findViewById(R.id.intro); 48 mDataItemListAdapter = new DataItemAdapter(getActivity(), 49 android.R.layout.simple_list_item_1); 50 dataItemList.setAdapter(mDataItemListAdapter); 51 mInitialized = true; 52 return view; 53 } 54 appendItem(String title, String text)55 public void appendItem(String title, String text) { 56 if (!mInitialized) { 57 return; 58 } 59 mIntroText.setVisibility(View.INVISIBLE); 60 mDataItemListAdapter.add(new Event(title, text)); 61 } 62 63 private static class DataItemAdapter extends ArrayAdapter<Event> { 64 65 private final Context mContext; 66 DataItemAdapter(Context context, int unusedResource)67 public DataItemAdapter(Context context, int unusedResource) { 68 super(context, unusedResource); 69 mContext = context; 70 } 71 72 @Override getView(int position, View convertView, ViewGroup parent)73 public View getView(int position, View convertView, ViewGroup parent) { 74 ViewHolder holder; 75 if (convertView == null) { 76 holder = new ViewHolder(); 77 LayoutInflater inflater = (LayoutInflater) mContext.getSystemService( 78 Context.LAYOUT_INFLATER_SERVICE); 79 convertView = inflater.inflate(android.R.layout.two_line_list_item, null); 80 convertView.setTag(holder); 81 holder.text1 = (TextView) convertView.findViewById(android.R.id.text1); 82 holder.text2 = (TextView) convertView.findViewById(android.R.id.text2); 83 } else { 84 holder = (ViewHolder) convertView.getTag(); 85 } 86 Event event = getItem(position); 87 holder.text1.setText(event.title); 88 holder.text2.setText(event.text); 89 return convertView; 90 } 91 92 private class ViewHolder { 93 94 TextView text1; 95 TextView text2; 96 } 97 } 98 99 private class Event { 100 101 String title; 102 String text; 103 Event(String title, String text)104 public Event(String title, String text) { 105 this.title = title; 106 this.text = text; 107 } 108 } 109 } 110