2011-07-18 2 views
0

私は、基本的には文字列の配列で設定されたListViewであるAndroidアプリケーションを作成しています。配列の位置は、渡される位置IDに基づいて、6つの異なるXMLレイアウトの1つを設定する「詳細」アクティビティに渡されます。 XMLレイアウトはViewFlippersであり、私はユーザーがそれらの間を行き来できるようにしたいと思います。私は主に、ListViewでユーザーが選択した項目が常に「詳細」ページの最初の項目であることを除いて、機能しています。したがって、ユーザーがリストビューの3番目の項目を選択した場合、3番目の項目が表示されますが、右側にスワイプすると、4番目ではなく1番目の「詳細」レイアウトが表示されるため、すべてが順不同です。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, 
}; 

私は私には、getChildAt [位置]を使用し、その後、addView年代に最初のViewFlipperを移入でき期待していたが、それが動作するように見えるdoens't:これは私がViewFlipperを移入するために使用しているコードです。

答えて

0

ビューフリッパーのレイアウトを非常に多く使っているとわかりません。 同じレイアウトであれば、1つのビューフリッパーを使用します。&内のフリップビューを使用します。 ビューフリッパーの内容を変更したい場合は、ビューの内容を変更する必要があります。image.setImageResource(imageId[2])またはtextview.setText("###")