0

私が開発しているより大きなアプリのためにいくつかのことを試すために小さなアプリを作ろうとしています。4つの画像を表示するビューページャーを追加したいのですが、このビューページャーを単独で開発して動作しましたが、タグを使用して他のアプリ(ボタンが2つだけ)に追加しようとすると、何も表示されず、ここで本当に立ち往生しています。この方法で Viewpager を追加することは可能ですか? 正直なところ、私は Java の経験があまりなく、通常は C とアセンブラーしかプログラミングしていません。

これは、ボタンとインクルードを含む xml ファイルです。

<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:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"
android:weightSum="1">

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Calculo Rapido"
    android:id="@+id/btcr"
    android:layout_gravity="center_vertical"
    android:layout_weight="0.16"
    android:layout_alignParentStart="true" />

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Calculo Avanzado"
    android:id="@+id/button"
    android:layout_centerVertical="true"
    android:layout_below="@+id/btcr" />

<include layout="@layout/viewpager"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_centerHorizontal="true"
    android:translationZ="15dp" />

ここで、ビューページャーの元のレイアウトにリンクされたアクティビティ内にビューページャーを保持したため、ボタン アクティビティを保持する MainActivity

Button siguiente;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    siguiente = (Button)findViewById(R.id.btcr);
    siguiente.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent siguiente = new Intent(MainActivity.this, Main2Activity.class);
            startActivity(siguiente);
        }
    });
}

そして最後に、mainpager のメイン アクティビティのコードで、これは別の Java クラスに保存された CustomPagerAdapter を使用します。前に言ったように、このビューページャーは単独で動作しますが、ここで /include タグを付けて実装しようとすると、何も表示されません。

public class MainActivity extends Activity {

CustomPagerAdapter mCustomPagerAdapter;
ViewPager mViewPager;
private static int currentPage = 0;
private static int NUM_PAGES = 0;
Button siguiente;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    // == Setting up the ViewPager ==

    mCustomPagerAdapter = new CustomPagerAdapter(this);

    mViewPager = (ViewPager) findViewById(R.id.pager);
    mViewPager.setAdapter(mCustomPagerAdapter);

    final Handler handler = new Handler();
    final Runnable Update = new Runnable() {
        public void run() {
            if (currentPage == NUM_PAGES) {
                currentPage = 0;
            }
            mViewPager.setCurrentItem(currentPage++);

            if (currentPage == 5) {
                currentPage = 0;
                mViewPager.setCurrentItem(currentPage++, false);
            }
        }
    };
    Timer swipeTimer = new Timer();
    swipeTimer.schedule(new TimerTask() {
        @Override
        public void run() {
            handler.post(Update);
        }
    }, 2000, 2000);

}

長すぎて申し訳ありませんが、少しイライラしています。たくさんのことを試しましたが、まだ機能していません。ボタンが機能して ViewPager が機能しないか、ViewPager は機能するがボタンが機能しません。

私は本当にあなたの助けに感謝します:)

4

2 に答える 2

0

フォルダー内に新しいxmlファイルを作成し、layout名前を付けますsecondactivity.xml

このコードを入れて

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">

    <android.support.v4.view.ViewPager
       android:layout_width="match_parent"
       android:layout_height="match_parent"
       android:id="@+id/pager">

    </android.support.v4.view.ViewPager>
</LinearLayout>

今あなたの中にMain2Activity.class

変化する

setContentView(R.layout.activity_main);

setContentView(R.layout.secondactivity);

そしてinclude、以前のxmlからを削除します

于 2016-07-01T19:03:39.140 に答える
0

結局のところ、私が必要としていたのは単純なソリューションでした。ビューページャーをアクティビティのレイアウト ファイルに別のオブジェクトとして配置し、そのサイズと位置を構成する必要がありました。そして、onCreate に、機能している ViewPager のコードを貼り付けました。別のレイアウトを必要とせずに、非常にシンプルです:)

于 2016-07-19T17:40:18.467 に答える