--- android/TrainInfo/src/dk/thoerup/traininfo/StationListAdapter.java 2009/10/29 19:27:29 490 +++ android/TrainInfo/src/dk/thoerup/traininfo/StationListAdapter.java 2011/07/08 13:10:53 1558 @@ -1,27 +1,33 @@ package dk.thoerup.traininfo; +import static dk.thoerup.traininfo.R.string.stationlistadapter_distance; + import java.text.NumberFormat; -import java.util.List; import android.content.Context; -import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.TextView; +import dk.thoerup.android.traininfo.common.StationBean; +import dk.thoerup.android.traininfo.common.StationEntry; public class StationListAdapter extends BaseAdapter { LayoutInflater inflater; - List stations; + StationBean stations; Context context; NumberFormat number = NumberFormat.getNumberInstance(); - public StationListAdapter(Context context) { + boolean showDistance; + + public StationListAdapter(Context context, boolean showDistance) { super(); this.context = context; + this.showDistance = showDistance; + inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); number.setMaximumFractionDigits(1); number.setMinimumFractionDigits(1); @@ -30,7 +36,7 @@ @Override public int getCount() { if (stations != null) - return stations.size(); + return stations.entries.size(); else return 0; } @@ -40,8 +46,8 @@ return null; } - public StationBean getStation(int position) { - return stations.get(position); + public StationEntry getStation(int position) { + return stations.entries.get(position); } @Override @@ -49,27 +55,29 @@ return position; } - public void setStations(List stations) { + public void setStations(StationBean stations) { this.stations = stations; notifyDataSetChanged(); } @Override public View getView(int position, View convertView, ViewGroup parent) { - StationBean station = stations.get(position); + StationEntry station = stations.entries.get(position); - View root; - if (convertView == null || convertView.getId() != R.id.StationRow) { - root = inflater.inflate(R.layout.stationrow , parent, false); - } else { - root = convertView; - } - + View root = inflater.inflate(R.layout.stationrow , parent, false); TextView tview = (TextView) root.findViewById(R.id.stationName); tview.setText(station.getName()); tview = (TextView) root.findViewById(R.id.stationDistance); - tview.setText("Distance: " + number.format( (double)station.getDistance()/1000.0) + " km."); + if (showDistance == true) { + tview.setText( context.getString(stationlistadapter_distance) + " " + number.format( (double)station.getCalcdist()/1000.0) + " km."); + } else { + tview.setVisibility(View.GONE); + } + + root.findViewById(R.id.isregional).setVisibility( station.isRegional() ? View.VISIBLE : View.INVISIBLE ); + root.findViewById(R.id.isstrain).setVisibility( station.isStrain() ? View.VISIBLE : View.INVISIBLE ); + root.findViewById(R.id.ismetro).setVisibility( station.isMetro() ? View.VISIBLE : View.INVISIBLE ); return root; }