按顺序设置ViewFlipper

时间:2011-07-18 02:35:12

标签: android viewflipper

我正在编写一个Android应用程序,它基本上是一个填充了字符串数组的ListView。数组位置传递给“详细信息”活动,该活动根据传递的位置ID设置6种不同XML布局中的一种。 XML布局是ViewFlippers,我希望用户能够在它们之间来回传递。我主要使用它,除了用户在ListView中选择的项目始终是“详细信息”页面上的第一项。因此,如果用户在ListView中选择了第3项,则会显示第3项,但如果它们向右滑动,则会显示第1个“详细信息”布局,而不是第4个,因此一切都不正常。这是我用来填充ViewFlipper的代码:

 public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        Bundle bun = getIntent().getExtras();
        int position = bun.getInt("position");

        setContentView(fullId[position]);

        viewFlipper = (ViewFlipper)findViewById(flipId[position]);

        for (int i = 0; i < fullId.length; i++)
            viewFlipper.addView(ViewFlipper.inflate(this, fullId[i], null));

        slideLeftIn = AnimationUtils.loadAnimation(this, R.anim.slide_left_in);
        slideLeftOut = AnimationUtils.loadAnimation(this, R.anim.slide_left_out);
        slideRightIn = AnimationUtils.loadAnimation(this, R.anim.slide_right_in);
        slideRightOut = AnimationUtils.loadAnimation(this, R.anim.slide_right_out);

        gestureDetector = new GestureDetector(new MyGestureDetector());

        gestureListener = new View.OnTouchListener() {
            public boolean onTouch(View v, MotionEvent event) {
                if (gestureDetector.onTouchEvent(event)) {
                    return true;
                }
                return false;
            }
        };
    }

 private Integer[] fullId = {
    R.layout.details1, 
         R.layout.details2,
         R.layout.details3,
         R.layout.details4,
         R.layout.details5,
         R.layout.details6,
         R.layout.details7,
 };

 private Integer[] flipId = {
         R.id.flip1, 
         R.id.flip2,
         R.id.flip3,
         R.id.flip4,
         R.id.flip5,
         R.id.flip6,
         R.id.flip7,
 };  

我希望我可以首先使用addView填充ViewFlipper,然后使用getChildAt [position],但这似乎不起作用。

1 个答案:

答案 0 :(得分:0)

我不明白你使用了很多View Flippers布局。 如果它们具有相同的布局,请使用单个View Flipper,&amp;翻转视图。 如果您想更改视图Flipper的内容,则需要更改其中的视图内容..例如image.setImageResource(imageId[2])textview.setText("###")