package de.htwdd; import android.content.Context; import android.content.Intent; import android.graphics.Color; import android.net.Uri; import android.util.TypedValue; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.LinearLayout.LayoutParams; import android.widget.TextView; import de.htwdd.types.Meal; public class MensaArrayAdapter extends ArrayAdapter<Meal> { private final Context context; private Meal[] essen; public MensaArrayAdapter(Context context, Meal[] essen) { super(context, R.layout.mensa, essen); this.context = context; this.essen = essen; } @Override public View getView(final int position, View convertView, ViewGroup parent) { LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); ViewHolder viewHolder; if (convertView == null) { convertView = inflater.inflate(R.layout.mensa, parent, false); // Setup the ViewHolder viewHolder = new ViewHolder(); viewHolder.titel = (TextView) convertView.findViewById(R.id.titel); viewHolder.preis = (TextView) convertView.findViewById(R.id.preis); viewHolder.image = (ImageView) convertView.findViewById(R.id.image); viewHolder.separator= convertView.findViewById(R.id.separator); viewHolder.linearLayout = (LinearLayout) convertView.findViewById(R.id.menurow); convertView.setTag(viewHolder); } else viewHolder = (ViewHolder) convertView.getTag(); if (essen[position].ID != 0) { // Füge Button "Weiter Informationen" hinzu Button button; if (android.os.Build.VERSION.SDK_INT >= 14) { button = new Button(context, null, android.R.attr.borderlessButtonStyle); button.setTextColor(Color.parseColor("#33B5E5")); } else button = new Button(context, null, android.R.attr.buttonStyleSmall); button.setTextSize(TypedValue.COMPLEX_UNIT_SP, 14); button.setText(R.string.mensa_more_information); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View arg0) { Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.studentenwerk-dresden.de/mensen/speiseplan/details-" + essen[position].ID + ".html?pni=1")); context.startActivity(browserIntent); } }); button.setTag("Button"); viewHolder.linearLayout.removeView(viewHolder.linearLayout.findViewWithTag("Button")); viewHolder.linearLayout.addView(button, new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT)); viewHolder.separator.setVisibility(View.VISIBLE); } else viewHolder.separator.setVisibility(View.GONE); // Ordne den Elementen ihre Daten zu if (essen[position].Thumbnail != null) viewHolder.image.setImageBitmap(essen[position].Thumbnail); else viewHolder.image.setVisibility(View.GONE); viewHolder.titel.setText(essen[position].Title); viewHolder.preis.setText(essen[position].Price); return convertView; } private static class ViewHolder { public TextView titel; public TextView preis; public ImageView image; public View separator; public LinearLayout linearLayout; } }