package com.duguang.baseanimation.adapter;
import java.util.ArrayList;
import java.util.List;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.text.Html;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import com.aphidmobile.utils.AphidLog;
import com.aphidmobile.utils.IO;
import com.aphidmobile.utils.UI;
import com.duguang.baseanimation.R;
import com.duguang.baseanimation.ui.flip.data.Travels;
public class TravelAdapter extends BaseAdapter {
private LayoutInflater inflater;
private int repeatCount = 1;
private List<Travels.Data> travelData;
public TravelAdapter(Context context) {
inflater = LayoutInflater.from(context);
travelData = new ArrayList<Travels.Data>(Travels.IMG_DESCRIPTIONS);
}
@Override
public int getCount() {
return travelData.size() * repeatCount;
}
public int getRepeatCount() {
return repeatCount;
}
public void setRepeatCount(int repeatCount) {
this.repeatCount = repeatCount;
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View layout = convertView;
if (convertView == null) {
layout = inflater.inflate(R.layout.activity_flip_complex, null);
AphidLog.d("created new view from adapter: %d", position);
}
final Travels.Data data = travelData.get(position % travelData.size());
UI.<TextView> findViewById(layout, R.id.title).setText(
AphidLog.format("%d. %s", position, data.title));
UI.<ImageView> findViewById(layout, R.id.photo).setImageBitmap(
IO.readBitmap(inflater.getContext().getAssets(),
data.imageFilename));
UI.<TextView> findViewById(layout, R.id.description).setText(
Html.fromHtml(data.description));
UI.<Button> findViewById(layout, R.id.wikipedia).setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(Intent.ACTION_VIEW, Uri
.parse(data.link));
inflater.getContext().startActivity(intent);
}
});
return layout;
}
public void removeData(int index) {
if (travelData.size() > 1) {
travelData.remove(index);
}
}
}