0

Halo の皆さん、私は Android 開発者の手順に従いました: http://developer.android.com/training/animation/screen-slide.html

MainJava で "btnRight" と "btnLeft" を呼び出して onClick 関数を作成するにはどうすればよいですか? 私はそれについて知りません、(???).findViewByID ?

ところで、この効果を生み出すための別のより良いコーディング設計はありますか? スライドまたはクリックして画面を変更できる 3 ページを作成したいのですが、このビューページャーの使い方が間違っていましたか? おそらく、ページ番号のトリックを使用して新しいビュー インスタントを追加するのでしょうか?

少し助けてください、ありがとう!!

MainJava.java:

public class MainJava extends FragmentActivity {

private static final int NUM_PAGES = 3;
private ViewPager mPager;
private PagerAdapter mPagerAdapter;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    ActionBar actionBar = getActionBar();
    actionBar.hide();

    mPager = (ViewPager) findViewById(R.id.pager);
    mPagerAdapter = new ScreenSlidePagerAdapter(getFragmentManager());
    mPager.setAdapter(mPagerAdapter);
    mPager.setCurrentItem(1); 

}

private class ScreenSlidePagerAdapter extends FragmentStatePagerAdapter {
    public ScreenSlidePagerAdapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public Fragment getItem(int position) {
        return ScreenSlidePageFragment.create(position);
    }

    @Override
    public int getCount() {
        return NUM_PAGES;
    }
}

}

ScreenSlidePageFragment.java:

public class ScreenSlidePageFragment extends Fragment {

public static final String ARG_PAGE = "page";

private int mPageNumber;

public static ScreenSlidePageFragment create(int pageNumber) {
    ScreenSlidePageFragment fragment = new ScreenSlidePageFragment();
    Bundle args = new Bundle();
    args.putInt(ARG_PAGE, pageNumber);
    fragment.setArguments(args);
    return fragment;
}

public ScreenSlidePageFragment() {
}

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    mPageNumber = getArguments().getInt(ARG_PAGE);
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    // Inflate the layout containing a title and body text.
    ViewGroup rootView = (ViewGroup) inflater
            .inflate(R.layout.scroll_view_content, container, false);
    //rootView.addView(inflater.inflate(R.layout.scroll_view_content, null));

    View pageLeft = (View) rootView.findViewById(R.id.pageLeft);
    View pageRight = (View) rootView.findViewById(R.id.pageRight);
    View pageMain = (View) rootView.findViewById(R.id.pageMain);
    if (mPageNumber==0){
        pageLeft.setVisibility(View.VISIBLE);
        pageMain.setVisibility(View.GONE);
        pageRight.setVisibility(View.GONE);
    }else if (mPageNumber==1){
        pageLeft.setVisibility(View.GONE);
        pageMain.setVisibility(View.VISIBLE);
        pageRight.setVisibility(View.GONE);
    }else if (mPageNumber==2){
        pageLeft.setVisibility(View.GONE);
        pageMain.setVisibility(View.GONE);
        pageRight.setVisibility(View.VISIBLE);
    }

    return rootView;
}
public int getPageNumber() {
    return mPageNumber;
}

scroll_view_content.xml:

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

    <!-- Dummy content. -->

    <LinearLayout
        android:id="@+id/pageLeft"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >

        <TextView
            style="?android:textAppearanceMedium"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:lineSpacingMultiplier="1.2"
            android:text="AAA" />

    </LinearLayout>

    <LinearLayout
        android:id="@+id/pageRight"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >

        <TextView
            style="?android:textAppearanceMedium"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:lineSpacingMultiplier="1.2"
            android:text="CCC"/>
    </LinearLayout>

    <RelativeLayout
        android:id="@+id/pageMain"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#123456"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/textB"
            style="?android:textAppearanceMedium"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:lineSpacingMultiplier="1.2"
            android:background="#654321"
            android:text="BBB"/>
        <LinearLayout 
            android:layout_below="@+id/textB"
            android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="horizontal">
            <Button 
                android:id="@+id/btnLeft"
                android:layout_width="0dp"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:background="#00ffff"
                android:text="A"/>
            <Button 
                android:id="@+id/btnRight"
                android:layout_width="0dp"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:background="#ffff00"
                android:text="B"/>
        </LinearLayout>
    </RelativeLayout>
</RelativeLayout>
4

1 に答える 1