【发布时间】:2011-07-19 16:53:36
【问题描述】:
我正在编写一个 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],但这似乎不起作用。
【问题讨论】:
标签: android viewflipper