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); } }