具有多种布局的Android viewflipper

时间:2013-05-08 11:00:32

标签: android viewflipper

我创建了android应用程序,它在布局中有转换操作 这是布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/bg_register"
    android:orientation="vertical"
    android:id="@+id/parent_linear_layout" >


    <ViewFlipper
        android:id="@+id/home_screen_flipper"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

        <include
            android:id="@+id/home_screen_index_layout"
            layout="@layout/home_screen_index"

             />

        <include
            android:id="@+id/home_screen_recover_layout"
            layout="@layout/home_screen_recover" />

        <include
            android:id="@+id/home_screen_register_layout"
            layout="@layout/home_screen_register" />


    </ViewFlipper>

在thr中,我使用标签包含了其他相关的布局。 我已经明确地进行了开发。

该布局已加载到HomeScreen.java活动类中 但是现在我想调用home_screen_register_layout中的按钮操作,但它应该在HomeScreen.java中的不同类中,是否可以将布局连接到类并检测该特定类中的操作。

这样做的目的是最小化HomeScreen.java类中的代码

2 个答案:

答案 0 :(得分:0)

由于您希望在单独的抽象类中定义Button单击方法,我建议您通过扩展Activity类来定义基类,然后将该BaseActivity类扩展到HomeScreen类。您的HomeScreen可以从该BaseActivity类访问方法。

例如:

BaseActivity.java

在BaseActivity类中包含所有按钮单击方法。

abstract public class BaseActivity extends Activity {

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

        /**
         OK button click
        **/
        public void btnOkClick(View v)
        {
        }

        /**
         Display button click
        **/
        public void btnDisplayClick(View v)
        {
        }
}

HomeScreen.java

public class HomeScreen extends BaseActivity {
        @Override
    public void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.layout_home_screen);


    }
}

答案 1 :(得分:0)

这是在ViewFlipper中添加多个视图的最佳方式

 private View viewText;
 private View viewImage;
 private void setViewFlipperPost(String postType) {

     if (postType.toLowerCase().toString().equals("text")) {

            viewText = LayoutInflater.from(mContext).inflate(R.layout.activity_full_screen_textpost, null, false);
            viewText.setTag(TAG_TEXT);
            viewFlipper.addView(viewText);

    } else  if (postType.toLowerCase().toString().equals("image")) {

            viewImage = LayoutInflater.from(mContext).inflate(R.layout.layoutViewImage, null, false);
            imgView.setTag(TAG_IMAGE);
            viewFlipper.addView(viewImage);
    }
}