Android ViewFlipper更多控件
我有1个viewflipper,它包含3个布局。布局1有两个按钮,一个用于显示下一步,另一个用于转到其他活动。第二个布局有3个按钮。我想知道的是如何控制第二个布局,并在每个按钮上单击Listener,这样我就可以为下一个节目制作一个,另一个转到另一个活动 这是xmlAndroid ViewFlipper更多控件,android,viewflipper,Android,Viewflipper,我有1个viewflipper,它包含3个布局。布局1有两个按钮,一个用于显示下一步,另一个用于转到其他活动。第二个布局有3个按钮。我想知道的是如何控制第二个布局,并在每个按钮上单击Listener,这样我就可以为下一个节目制作一个,另一个转到另一个活动 这是xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.androi
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<ViewFlipper
android:id="@+id/viewFlipper1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true" >
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent" >
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="44dp"
android:src="@drawable/ballchr3" />
<ImageView
android:id="@+id/imageView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/imageView1"
android:layout_toLeftOf="@+id/imageView3"
android:src="@drawable/ballchr4" />
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent" >
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_marginTop="73dp"
android:layout_toRightOf="@+id/imageView3"
android:src="@drawable/ballchr3" />
<ImageView
android:id="@+id/imageView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/imageView1"
android:layout_toLeftOf="@+id/imageView3"
android:src="@drawable/ballchr4" />
<ImageView
android:id="@+id/imageView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="128dp"
android:src="@drawable/ballchr5" />
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent" >
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_alignRight="@+id/imageView2"
android:layout_marginTop="76dp"
android:src="@drawable/ballchr3" />
</RelativeLayout>
</ViewFlipper>
</RelativeLayout>
首先,不要在同一个xml文件中重复id,我可以看到您多次使用imageView1、2和3。不要那样做
要回答您的问题,请在活动中声明更多的ImageView,并像上面所做的那样将它们分配给相应的按钮,并设置它们的OnClickListener,然后实现它们。因为它在同一个xml中,所以当视图退出时,它的引用也将存在。我真的不明白问题出在哪里?拇指朝下,回答正确。谢谢,请回答一个问题,有没有任何方法可以对单独的xml文件执行此操作,因为这种方法将非常混乱,并且需要花费大量时间。因此,我想知道是否有任何方法可以切换整个xml视图文件。再次感谢您在代码中动态(我指的是编程)而不是处理xml。您可以尝试在单独的xml文件中声明每个relativeLayout,并在视图翻转器中使用标记,这样就不会太混乱,您可以重新使用代码
public class MainActivity extends Activity implements OnClickListener {
ViewFlipper viewflipper;
ImageView btn, fail;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
viewflipper = (ViewFlipper)findViewById(R.id.viewFlipper1);
btn = (ImageView)findViewById(R.id.imageView1);
fail = (ImageView)findViewById(R.id.imageView2);
btn.setOnClickListener(this);
fail.setOnClickListener(this);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
switch(arg0.getId()){
case R.id.imageView1:
viewflipper.showNext();
break;
case R.id.imageView2:
Intent i = new Intent(MainActivity.this, Fail.class);
startActivity(i);
break;
}
}