我正在编写一个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],但这似乎不起作用。
答案 0 :(得分:0)
我不明白你使用了很多View Flippers布局。
如果它们具有相同的布局,请使用单个View Flipper,&amp;翻转视图。
如果您想更改视图Flipper的内容,则需要更改其中的视图内容..例如image.setImageResource(imageId[2])
或textview.setText("###")