2011-10-14 4 views
0

ViewFlipper는 두 개의 액티비티 사이에서 사용할 수 있습니까?인 텐트를 가진 안드로이드 ViewFlipper

첫 번째보기에서 어떤 단추에 따라 두 개의 단추가 사용되며,보기 단추 (ViewFlipper 사용)로 전환하고 누른 단추에 따라 다른 논리를 사용해야합니다.

미리 감사드립니다.

답변

1

나는 두 개의 클래스를 만들고 원하는 레이아웃을 부 풀리게 할 것이다. 각 반에서 당신은 다른 논리를 가질 수 있습니다. 당신의 활동은 ViewFlipper와 다음/이전으로 전환하기위한 논리 만 보유하게됩니다. 당신이 FirstView 또는 SecondView 중 하나에 때보기를 변경해야 할 때

public class ViewFlipperActivity extends Activity { 
    public void onCreate(Bundle savedInstanceState) { 
     super(savedInstanceState); 
     setContentView(R.layout.my_viewFlipper_lauout); 

     flipper = (ViewFlipper) findViewById(R.id.viewFlipper); 

     FirstView first = new FirstView(this, flipper); 
     flipper.addView(first); 

     SecondView second = new SecondView(this, flipper); 
     flipper.addView(second); 

     first.setDataPasser(second); 
     second.setDataPasser(first); 
    } 
} 

먼저보기

public class FirstView extends LinearLayout implements DataPasser { 
    private ViewFlipper flipper; 
    private DataPasser dataPasser; 

    public FirstView(Context context, ViewFlipper flipper) { 
     super(context); 
     inflate(...); 
     this.flipper = flipper; 

     // Do other stuff. 
    } 

    protected void setDataPasser(DataPasser dataPasser) { 
    this.dataPasser = dataPasser; 
    } 

    //Implement the other methods required by your interface. 
} 

는 두 번째보기

public class SecondView extends LinearLayout { 
    private ViewFlipper flipper; 
    private DataPasser dataPasser; 

    public SecondView(Context context, ViewFlipper flipper) { 
     super(context); 
     inflate(...); 
     this.flipper = flipper; 

     // Do other stuff. 
    } 

    protected void setDataPasser(DataPasser dataPasser) { 
    this.dataPasser = dataPasser; 
    } 

    //Implement the other methods required by your interface. 
} 

는 그런 다음 flipper.showNext() 또는 flipper.showPrevious()

전화 0

편집

두 견해 사이에 데이터를 전달하려면, 당신은이 목적을 위해 활동 클래스의 일부 메소드를 구현하고 두 개의보기가 활동에 대한 참조를 보유 할 수 있습니다.

interface DataPasser { 
    void setDataPasser(DataPasser dataPasser); //To be able to add each view to the other. 
    void passData(Data data); //Or other methods needed to pass the data. 
} 
+0

어디에서 매개 변수를 전달할 수 있습니까? – MDP

+0

위의 답변을 귀하의 필요에보다 정확하게 맞도록 수정했습니다. – kaspermoerch

+0

그럼 viewFlipper는 R.id.viewFlipper와 어떤 차이가 있습니까? –

0

이름이 더 두 가지보기보다는 두 활동 사이의 플립을 시도 you.You 두 intents.So 사이에없는 두 개의보기 사이를 전환 할 수 말해야한다 : 또 다른 대안은 두 개의 뷰가 구현해야하는 인터페이스를 만드는 것입니다.

+0

그러면 뷰 플리퍼를 매개 변수로 전달할 수 있습니다. – MDP

+0

그런 경우에는 자신 만의 논리를 사용할 수 있습니다. 다른 생각은 없습니다. –

+0

이 문제에 대한 어떤 생각이 있으십니까? – MDP

관련 문제