2011-10-25 5 views
0

メインページの上部にはhorizo​​ntalScrollViewがあり、その中にいくつかのTextViewテキストフィールドがあります。 TextViewのテキストをスクロールしてクリックすると、Horizo​​ntalScrollViewでの選択に合わせてRelativeLayoutが変更されます。ページ上のコンテンツを変更するためのAndroidスライディングメニューはこれを行うことができますか?

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
> 
<HorizontalScrollView android:id="@+id/horizontalScrollView1" android:layout_height="wrap_content" android:scrollbars="none" android:layout_width="wrap_content"> 
    <LinearLayout android:layout_width="match_parent" android:orientation="horizontal" android:layout_height="match_parent" android:id="@+id/linearLayout1"> 
     <TextView android:layout_height="wrap_content" android:layout_weight="1" android:layout_width="70dp" android:id="@+id/EditTOne" android:text="tOne"></TextView> 
     <TextView android:layout_height="wrap_content" android:layout_weight="1" android:layout_width="70dp" android:id="@+id/EditTTwo" android:text="tTwo"></TextView> 
     <TextView android:layout_height="wrap_content" android:layout_weight="1" android:layout_width="70dp" android:id="@+id/EditTThree" android:text="tThree"></TextView> 
     <TextView android:layout_height="wrap_content" android:layout_weight="1" android:layout_width="70dp" android:id="@+id/EditTFour" android:text="tFour"></TextView> 
     <TextView android:layout_height="wrap_content" android:layout_weight="1" android:layout_width="70dp" android:id="@+id/EditTFive" android:text="tFive"></TextView> 
     <TextView android:layout_height="wrap_content" android:layout_weight="1" android:layout_width="70dp" android:id="@+id/EditTSix" android:text="tSix"></TextView> 
     <TextView android:layout_height="wrap_content" android:layout_weight="1" android:layout_width="70dp" android:id="@+id/EditTSeven" android:text="tSeven"></TextView> 
    </LinearLayout> 
</HorizontalScrollView> 
<RelativeLayout android:layout_height="wrap_content" android:layout_width="match_parent" android:id="@+id/relativeLayout1"></RelativeLayout> 
</LinearLayout> 

main.xmlは私がHorizo​​ntalScrollViewのメニュー・オプションのトーンに連結されるトーンと呼ばれる第2のレイアウトのページを持っています。

tone.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"> 
<TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="This is tOne"></TextView>  
</LinearLayout> 

主な活動は、第4のオプションのいずれかをLogCatに書き込むことでフラグ選択される場合。ユーザーがHorizo​​ntalScrollViewからtOneオプションをクリックすると、relativelayout内にtone.xmlを表示できますか?次に、ユーザーがRelativeLayoutViewなどでtTwo.xmlを表示することを選択した場合は、

import android.app.Activity; 
import android.os.Bundle; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.RelativeLayout; 
import android.widget.TextView; 

public class SlideMenu extends Activity implements OnClickListener { 
    /** Called when the activity is first created. */ 
    TextView tOne, tTwo, tThree, tFour, tFive, tSix, tSeven, tEight, tNine, tTen; 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     RelativeLayout vSpace = (RelativeLayout)findViewById(R.id.relativeLayout1); 

     tOne = (TextView)findViewById(R.id.EditTOne); 
     tTwo = (TextView)findViewById(R.id.EditTTwo); 
     tThree = (TextView)findViewById(R.id.EditTThree); 
     tFour = (TextView)findViewById(R.id.EditTFour); 
     tFive = (TextView)findViewById(R.id.EditTFive); 
     tSix = (TextView)findViewById(R.id.EditTSix); 
     tSeven = (TextView)findViewById(R.id.EditTSeven); 



     tOne.setOnClickListener(this); 
     tTwo.setOnClickListener(this); 
     tThree.setOnClickListener(this); 
     tFour.setOnClickListener(this); 
     tFive.setOnClickListener(this); 
     tSix.setOnClickListener(this); 
     tSeven.setOnClickListener(this); 
    } 
    @Override 
    public void onClick(View v) { 
     // TODO Auto-generated method stub 
     switch(v.getId()) { 

     //-------------- 
     case R.id.EditTOne: 
      System.out.println("Text One pressed"); 

     break; 
     case R.id.EditTTwo: 
      System.out.println("Text Two pressed"); 
     break; 
     case R.id.EditTThree: 
      System.out.println("Text Three pressed"); 
     break; 
     case R.id.EditTFour: 
      System.out.println("Text Four pressed"); 
     break; 
     } 
    } 
} 

答えて

2

私はそれがかなり簡単だと思います。 "Text One Pressed"を印刷した後に

 LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     inflater.inflate(R.layout.tone, vSpace); 

を追加しました。最初にvSpaceをフィールドにしてください。それらのすべてでこれを行うには

あなたは各ビューを膨らませる前に、

vSpace.removeAllViews() 

を呼び出します。

+0

ありがとうCraigyはうまくいきます。私はtOneからtTwoへの遷移をアニメートできますか?例えば、1つのレイアウトをスライドさせ、次のスライドをスライドさせます。 – John

+0

@John新しい質問でそれをお尋ねください。 –

+0

私は正直言って、アニメーションではあまりやっていないが、私は[ここ](http://www.inter-fuser.com/2009/07/android-transistions-slide-in-and-slide)の例を試してみた。 html)を成功させました。私は2つの間でビューを切り替えることができましたが、表示されるビューが増えるにつれてロジックが難しくなりました。利用できる唯一のメソッドは 'showNext'と' showPrevious'でした。たぶんあなたは自分自身のビューを追跡し、 'showNext'を繰り返し呼び出すことができますか?おそらくあなたは新しい質問を投稿するべきです。 – Craigy

関連する問題