在Android中没有片段的私有方法的寻呼机适配器

时间:2015-02-06 15:16:04

标签: android android-layout android-activity android-fragments android-viewpager

是否可以在没有片段的情况下使用View Viewr。我谷歌它,所有的例子都使用片段查看寻呼机。我想寻呼机只从我的列表中加载一个项目,所以我想问是否可能。这是我的主要活动代码,我想将UpdateDisplay用于viewpager。任何建议。

public class MainActivity extends Activity implements OnClickListener{

private Button prev, next;
private TextView tv;
private int number = 0;
private ArrayList<Integer> numbers;
private ViewPager pager;
private MyPagerAdapter adapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    prev = (Button) findViewById(R.id.prevButton);
    prev.setOnClickListener(this);
    next = (Button) findViewById(R.id.nextButton);
    next.setOnClickListener(this);
    numbers = new ArrayList<Integer>();
    for (int i=0;i<5;i++){
        numbers.add(i);
        Log.i("Sljedece elemente dodaje u listu", String.valueOf(i));
    }
    tv = (TextView) findViewById(R.id.rezultatTextView);
    pager = (ViewPager) findViewById(R.id.pager);
    adapter = new MyPagerAdapter();
    pager.setAdapter(adapter);

    updateDIsplay(number);
}

@Override
public void onClick(View v) {

    switch(v.getId()){
    case R.id.prevButton:
        number--;
        if (number==-1){
            number = 4;
        }
        updateDIsplay(number);
        break;
    case R.id.nextButton:
        number++;
        if (number==5){
            number = 0;
        }
        updateDIsplay(number);
        break;
    }

}

private void updateDIsplay(int z){

    tv.setText(String.valueOf(numbers.get(z)));

}

private class MyPagerAdapter extends PagerAdapter{

    @Override
    public int getCount() {
        return numbers.size();
    }

    @Override
    public boolean isViewFromObject(View arg0, Object arg1) {
        return false;
    }

}

}

1 个答案:

答案 0 :(得分:0)

是的,有可能。使用PageAdapter。调用instantiateItem时,可以将视图膨胀/实例化,并将其扩展到容器。 E.g:

private class MyPagerAdapter extends PagerAdapter {

    @Override
    public Object instantiateItem(ViewGroup container, int position) {
        TextView view = new TextView(PagerActivity.this);
        view.setText("Item "+position);
        view.setGravity(Gravity.CENTER);
        view.setBackgroundColor(Color.argb(255, position * 50, position * 10, position * 50));

        container.addView(view);
        return view;
    }

    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
        container.removeView((View)object);
    }

    @Override
    public int getCount() {
        return 5;
    }

    @Override
    public boolean isViewFromObject(View view, Object object) {
        return (view == object);
    }
}