package com.aincc.libtest.activity;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.aincc.lib.util.Logger;
import com.aincc.libtest.R;
import com.aincc.libtest.activity.flip.FlipAdapter;
import com.aincc.libtest.activity.flip.FlipViewGroup;
import com.aincc.libtest.activity.flip.FlipViewGroup.OnPageChangeListener;
import com.aincc.libtest.activity.flip.internal.FlipItem;
// TODO: 불필요하게 중복되어 그리는 현상 수정필요.
// 위의 문제를 해결하면 콜백은 자연스럽게 한번만 호출될거임.
public class FlipTest extends Activity implements OnPageChangeListener
{
private FlipViewGroup contentView;
private AFlipAdapter adapter;
private List<FlipItem> listdata = new ArrayList<FlipItem>();
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
// createManual();
createLayout();
}
private void createManual()
{
contentView = new FlipViewGroup(this);
setContentView(contentView);
contentView.setOnPageChangeListener(this);
adapter = new AFlipAdapter(this, listdata);
contentView.setAdapter(adapter);
listdata.add(new FlipItem(R.layout.flip_first));
listdata.add(new FlipItem(R.layout.flip_second));
listdata.add(new FlipItem(R.layout.flip_third));
listdata.add(new FlipItem(R.layout.flip_first));
listdata.add(new FlipItem(R.layout.flip_second));
listdata.add(new FlipItem(R.layout.flip_third));
listdata.add(new FlipItem(R.layout.flip_first));
listdata.add(new FlipItem(R.layout.flip_second));
listdata.add(new FlipItem(R.layout.flip_third));
listdata.add(new FlipItem(R.layout.flip_first));
listdata.add(new FlipItem(R.layout.flip_second));
listdata.add(new FlipItem(R.layout.flip_third));
adapter.notifyDataSetChanged();
}
private void createLayout()
{
setContentView(R.layout.activity_flip);
contentView = (FlipViewGroup) findViewById(R.id.flip);
contentView.setOnPageChangeListener(this);
adapter = new AFlipAdapter(this, listdata);
contentView.setAdapter(adapter);
listdata.add(new FlipItem(R.layout.flip_first));
listdata.add(new FlipItem(R.layout.flip_second));
listdata.add(new FlipItem(R.layout.flip_third));
listdata.add(new FlipItem(R.layout.flip_first));
listdata.add(new FlipItem(R.layout.flip_second));
listdata.add(new FlipItem(R.layout.flip_third));
listdata.add(new FlipItem(R.layout.flip_first));
listdata.add(new FlipItem(R.layout.flip_second));
listdata.add(new FlipItem(R.layout.flip_third));
listdata.add(new FlipItem(R.layout.flip_first));
listdata.add(new FlipItem(R.layout.flip_second));
listdata.add(new FlipItem(R.layout.flip_third));
adapter.notifyDataSetChanged();
}
@Override
protected void onResume()
{
super.onResume();
contentView.onResume();
}
@Override
protected void onPause()
{
super.onPause();
contentView.onPause();
}
class AFlipAdapter extends FlipAdapter
{
public AFlipAdapter(Context context, List<? extends FlipItem> listdata)
{
super(context, listdata);
}
@Override
public Object instantiateItem(ViewGroup container, int position)
{
View layout = (View) super.instantiateItem(container, position);
TextView tv = (TextView) layout.findViewById(R.id.bottomText);
String text = tv.getText().toString();
tv.setText(text + " " + position);
Logger.v(">>>>>>>>>>>>>>>>>>>>>>>>>> instantiateItem() position = " + position);
return layout;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object)
{
super.destroyItem(container, position, object);
Logger.v(">>>>>>>>>>>>>>>>>>>>>>>>>> destroyItem() position = " + position);
}
}
@Override
public void onPageSelected(int position)
{
Logger.v(">>>>>>>>>>>>>>>>>>>>>>>>>> onPageSelected() position = " + position);
}
}