Java tutorial
/* * Copyright (c) 2014 Yehezkel (Zack) Yovel * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package zack.yovel.clear.controller.foreground; import android.content.Intent; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.ListView; import android.widget.TextView; import org.joda.time.format.DateTimeFormatter; import org.joda.time.format.DateTimeFormatterBuilder; import java.util.List; import zack.yovel.clear.R; import zack.yovel.clear.infrastructure.model.datapoints.DataBlock; import zack.yovel.clear.infrastructure.model.datapoints.DataPoint; import zack.yovel.clear.infrastructure.model.datapoints.WeatherReport; import zack.yovel.clear.util.Constants; public class DailyFragment extends WeatherFragment implements AdapterView.OnItemClickListener { public static final int FLAG = 7; private static final String TAG = "DailyFragment"; private DateTimeFormatter dateTimeFormatter; public DailyFragment() { dateTimeFormatter = getDateTimeFormatter(); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { final View view = inflater.inflate(R.layout.fragment_forecast, container, false); view.findViewById(R.id.listView).setTag(TAG); return view; } @Override protected void displayWeatherReport(WeatherReport weatherReport) { DataBlock hourly = weatherReport.getDaily(); List<DataPoint> dataPoints = hourly.getData(); View view = getView(); ListView listView = (ListView) view.findViewWithTag(TAG); TextView emptyView = (TextView) getActivity().findViewById(android.R.id.empty); emptyView.setText(R.string.text_daily_loading); listView.setEmptyView(emptyView); DataPointAdapter adapter = new DataPointAdapter(getActivity(), dataPoints, dateTimeFormatter, FLAG); listView.setAdapter(adapter); listView.setOnItemClickListener(this); } public DateTimeFormatter getDateTimeFormatter() { DateTimeFormatterBuilder builder = new DateTimeFormatterBuilder(); builder.appendDayOfWeekShortText(); return builder.toFormatter(); } @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Intent intent = new Intent(getActivity(), DayViewActivity.class); intent.putExtra(DayViewActivity.EXTRA_DAY_INDEX, position); intent.putExtra(Constants.Keys.PREF_LOCATION_NAME, getActivity().getTitle()); startActivity(intent); } }