2

I am using viewflipper in an android applicatiion.

My application has tabhost within tabhost. When I click on Home tab--> click on diet button--> then it shows new tabhost like breakfast, lunch etc.

when I am use view flipper in lunch tab, which has two button home and office and then both button switch layout by view flipper, but it when lunch tab open it shows stackoverflow error.

I also try layoutinflater and other options expect view flipper but it shows same error.

This is logcat error

    11-16 10:08:48.229: ERROR/AndroidRuntime(223): Uncaught handler: thread main exiting due to uncaught exception
    11-16 10:08:48.258: ERROR/AndroidRuntime(223): java.lang.StackOverflowError
    11-16 10:08:48.258: ERROR/AndroidRuntime(223):     at android.text.Layout.measureText(Layout.java:1601)
    11-16 10:08:48.258: ERROR/AndroidRuntime(223):     at android.text.Layout.getLineMax(Layout.java:655)
    11-16 10:08:48.258: ERROR/AndroidRuntime(223):     at android.text.Layout.draw(Layout.java:311)
    11-16 10:08:48.258: ERROR/AndroidRuntime(223):     at android.text.BoringLayout.draw(BoringLayout.java:356)
    11-16 10:08:48.258: ERROR/AndroidRuntime(223):     at android.widget.TextView.onDraw(TextView.java:4032)
    11-16 10:08:48.258: ERROR/AndroidRuntime(223):     at android.widget.CompoundButton.onDraw(CompoundButton.java:229)
    11-16 10:08:48.258: ERROR/AndroidRuntime(223):     at android.view.View.draw(View.java:6274)
    11-16 10:08:48.258: ERROR/AndroidRuntime(223):     at android.view.ViewGroup.drawChild(ViewGroup.java:1526)
    11-16 10:08:48.258: ERROR/AndroidRuntime(223):     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1256)
    11-16 10:08:48.258: ERROR/AndroidRuntime(223):     at android.view.ViewGroup.drawChild(ViewGroup.java:1524)
    11-16 10:08:48.258: ERROR/AndroidRuntime(223):     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1256)
    11-16 10:08:48.258: ERROR/AndroidRuntime(223):     at android.view.ViewGroup.drawChild(ViewGroup.java:1524)
    11-16 10:08:48.258: ERROR/AndroidRuntime(223):     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1256)
    11-16 10:08:48.258: ERROR/AndroidRuntime(223):     at android.view.ViewGroup.drawChild(ViewGroup.java:1524)
    11-16 10:08:48.258: ERROR/AndroidRuntime(223):     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1256)
    11-16 10:08:48.258: ERROR/AndroidRuntime(223):     at android.view.ViewGroup.drawChild(ViewGroup.java:1524)
    11-16 10:08:48.258: ERROR/AndroidRuntime(223):     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1256)
    11-16 10:08:48.258: ERROR/AndroidRuntime(223):     at android.view.ViewGroup.drawChild(ViewGroup.java:1524)
    11-16 10:08:48.258: ERROR/AndroidRuntime(223):     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1256)
    11-16 10:08:48.258: ERROR/AndroidRuntime(223):     at android.view.View.draw(View.java:6277)
    11-16 10:08:48.258: ERROR/AndroidRuntime(223):     at android.widget.FrameLayout.draw(FrameLayout.java:352)
    11-16 10:08:48.258: ERROR/AndroidRuntime(223):     at android.view.ViewGroup.drawChild(ViewGroup.java:1526)
    11-16 10:08:48.258: ERROR/AndroidRuntime(223):     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1256)
    11-16 10:08:48.258: ERROR/AndroidRuntime(223):     at android.view.ViewGroup.drawChild(ViewGroup.java:1524)
    11-16 10:08:48.258: ERROR/AndroidRuntime(223):     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1256)
    11-16 10:08:48.258: ERROR/AndroidRuntime(223):     at android.view.ViewGroup.drawChild(ViewGroup.java:1524)
    11-16 10:08:48.258: ERROR/AndroidRuntime(223):     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1256)
    11-16 10:08:48.258: ERROR/AndroidRuntime(223):     at android.view.ViewGroup.drawChild(ViewGroup.java:1524)
    11-16 10:08:48.258: ERROR/AndroidRuntime(223):     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1256)
    11-16 10:08:48.258: ERROR/AndroidRuntime(223):     at android.view.ViewGroup.drawChild(ViewGroup.java:1524)
     11-16 10:08:48.258: ERROR/AndroidRuntime(223):     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1256)
     11-16 10:08:48.258: ERROR/AndroidRuntime(223):     at android.view.View.draw(View.java:6277)
     11-16 10:08:48.258: ERROR/AndroidRuntime(223):     at android.view.ViewGroup.drawChild(ViewGroup.java:1526)
     11-16 10:08:48.258: ERROR/AndroidRuntime(223):     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1256)
     11-16 10:08:48.258: ERROR/AndroidRuntime(223):     at android.view.ViewGroup.drawChild(ViewGroup.java:1524)
     11-16 10:08:48.258: ERROR/AndroidRuntime(223):     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1256)
     11-16 10:08:48.258: ERROR/AndroidRuntime(223):     at android.view.View.draw(View.java:6380)
     11-16 10:08:48.258: ERROR/AndroidRuntime(223):     at android.widget.FrameLayout.draw(FrameLayout.java:352)
     11-16 10:08:48.258: ERROR/AndroidRuntime(223):     at android.view.ViewGroup.drawChild(ViewGroup.java:1526) 
     11-16 10:08:48.258: ERROR/AndroidRuntime(223):     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1256)
     11-16 10:08:48.258: ERROR/AndroidRuntime(223):     at android.view.View.draw(View.java:6277)
     11-16 10:08:48.258: ERROR/AndroidRuntime(223):     at android.view.ViewGroup.drawChild(ViewGroup.java:1526)
     11-16 10:08:48.258: ERROR/AndroidRuntime(223):     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1256)
     11-16 10:08:48.258: ERROR/AndroidRuntime(223):     at android.view.View.draw(View.java:6277)
     11-16 10:08:48.258: ERROR/AndroidRuntime(223):     at android.widget.FrameLayout.draw(FrameLayout.java:352)
     11-16 10:08:48.258: ERROR/AndroidRuntime(223):     at android.view.ViewGroup.drawChild(ViewGroup.java:1526)
     11-16 10:08:48.258: ERROR/AndroidRuntime(223):     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1256)
     11-16 10:08:48.258: ERROR/AndroidRuntime(223):     at android.view.ViewGroup.drawChild(ViewGroup.java:1524)
     11-16 10:08:48.258: ERROR/AndroidRuntime(223):     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1256)
     11-16 10:08:48.258: ERROR/AndroidRuntime(223):     at android.view.View.draw(View.java:6277)
     11-16 10:08:48.258: ERROR/AndroidRuntime(223):     at android.widget.FrameLayout.draw(FrameLayout.java:352)
     11-16 10:08:48.258: ERROR/AndroidRuntime(223):     at android.view.ViewGroup.drawChild(ViewGroup.java:1526)
     11-16 10:08:48.258: ERROR/AndroidRuntime(223):     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1256)
     11-16 10:08:48.258: ERROR/AndroidRuntime(223):     at android.view.ViewGroup.drawChild(ViewGroup.java:1524)
     11-16 10:08:48.258: ERROR/AndroidRuntime(223):     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1256)
     11-16 10:08:48.258: ERROR/AndroidRuntime(223):     at android.view.ViewGroup.drawChild(ViewGroup.java:1524)
     11-16 10:08:48.258: ERROR/AndroidRuntime(223):     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1256)
    11-16 10:08:48.258: ERROR/AndroidRuntime(223):     at android.view.ViewGroup.drawChild(ViewGroup.java:1524)
     11-16 10:08:48.258: ERROR/AndroidRuntime(223):     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1256)
     11-16 10:08:48.258: ERROR/AndroidRuntime(223):     at android.view.ViewGroup.drawChild(ViewGroup.java:1524)
     11-16 10:08:48.258: ERROR/AndroidRuntime(223):     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1256)
     11-16 10:08:48.258: ERROR/AndroidRuntime(223):     at android.view.ViewGroup.drawChild(ViewGroup.java:1524)
     11-16 10:08:48.258: ERROR/AndroidRuntime(223):     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1256)
     11-16 10:08:48.258: ERROR/AndroidRuntime(223):     at android.view.View.draw(View.java:6277)
     11-16 10:08:48.258: ERROR/AndroidRuntime(223):     at android.widget.FrameLayout.draw(FrameLayout.java:352)
     11-16 10:08:48.258: ERROR/AndroidRuntime(223):     at android.view.ViewGroup.drawChild(ViewGroup.java:1526)
     11-16 10:08:48.258: ERROR/AndroidRuntime(223):     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1256)
     11-16 10:08:48.258: ERROR/AndroidRuntime(223):     at   android.view.View.draw(View.java:6277)
     11-16 10:08:48.258: ERROR/AndroidRuntime(223):     at android.widget.FrameLayout.draw(FrameLayout.java:352)
     11-16 10:08:48.258: ERROR/AndroidRuntime(223):     at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:1883)
     11-16 10:08:48.258: ERROR/AndroidRuntime(223):     at android.view.View

The code is here

    RelativeLayout rel1,rel2,rel3,rel4,rel5,rel6,
rel_Yes,rel_No;

     ImageButton rad_Yes,rad_No;
      TextView lbl_Yes,lbl_No;
         boolean yesNoChk=false;
      boolean have_lunch=false;

       RelativeLayout flip1,flip2;

      ViewFlipper vf;
    StringBuffer pasta,rice,soup,legmues,l_pasta;

     LinearLayout lin1;
      int i,j;
      ToggleButton [] imgArray1;
      ToggleButton [] imgArray2;
      ToggleButton [] imgArray3;
      ToggleButton [] imgArray4;
      ToggleButton [] imgArray5;
       RelativeLayout item ;

       Button btn;
       StringBuffer msg;

 @Override
 protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
setContentView(R.layout.lunch);





rad_Yes = (ImageButton) findViewById(R.id.lunch_radio_office);
rad_No = (ImageButton) findViewById(R.id.lunch_radio_home); 

    vf = (ViewFlipper)findViewById(R.id.ViewFlipper01);

flip1=(RelativeLayout)findViewById(R.id.flip1);
flip2=(RelativeLayout)findViewById(R.id.flip2);

rad_Yes.setOnClickListener(yesClickListener);
rad_No.setOnClickListener(noClickListener);

item = (RelativeLayout)findViewById(R.id.main);
     rel1 = (RelativeLayout) findViewById(R.id.main_rel1);
  rel2 = (RelativeLayout) findViewById(R.id.main_rel2);
  rel3 = (RelativeLayout) findViewById(R.id.main_rel3);
 rel4 = (RelativeLayout) findViewById(R.id.main_rel4);
   if(!yesNoChk)
{ 
rel5 = (RelativeLayout) findViewById(R.id.main_rel5);
 }   


imgArray1 = new ToggleButton[7];
 for(j=0;j<imgArray1.length;j++)
 {
     imgArray1[j] = (ToggleButton) rel1.getChildAt(j);
     imgArray1[j].setOnClickListener(this);

 }

 imgArray2 = new ToggleButton[7];
 for(j=0;j<imgArray2.length;j++)
 {
     imgArray2[j] = (ToggleButton) rel2.getChildAt(j);
     imgArray2[j].setOnClickListener(this);

 }
 imgArray3 = new ToggleButton[7];
 for(j=0;j<imgArray3.length;j++)
 {
     imgArray3[j] = (ToggleButton) rel3.getChildAt(j);
     imgArray3[j].setOnClickListener(this);

 }
 imgArray4 = new ToggleButton[7];
 for(j=0;j<imgArray4.length;j++)
 {
     imgArray4[j] = (ToggleButton) rel4.getChildAt(j);
     imgArray4[j].setOnClickListener(this);

 }

 if(!yesNoChk)
 { 
     imgArray5 = new ToggleButton[7];
     for(j=0;j<imgArray5.length;j++)
     {
         imgArray5[j] = (ToggleButton) rel5.getChildAt(j);
         imgArray5[j].setOnClickListener(this);

     }
 }
}





OnClickListener yesClickListener = new OnClickListener() {
    public void onClick(View v) {
        if(!yesNoChk){
            rad_Yes.setImageResource(R.drawable.selectradiobtn);
            rad_No.setImageResource(R.drawable.radiobtn);
            yesNoChk = true;


            vf.getChildAt(1).setVisibility(View.VISIBLE);
            vf.getChildAt(0).setVisibility(View.GONE);


        }

    }
};



OnClickListener noClickListener = new OnClickListener() {
    public void onClick(View v) {

            rad_No.setImageResource(R.drawable.selectradiobtn);
            rad_Yes.setImageResource(R.drawable.radiobtn);
            yesNoChk = false;

             vf.getChildAt(0).setVisibility(View.VISIBLE);
             vf.getChildAt(1).setVisibility(View.GONE);




    }
};
Newts
  • 1,354
  • 14
  • 23
  • We'd have to see more code. Stack overflow means that it's stuck in an infinite loop somewhere (my guess is that something may be messed up with which view is grabbing focus / needed to be drawn). – Blaskovicz Nov 16 '11 at 05:06
  • @Blaskovicz I have posted my source code please check it again – Newts Nov 16 '11 at 05:23

1 Answers1

1

Oh! I got my point, I need to changes text box values that is easy for me. Beacuse my layout in tab within tab.So it is not able to clear stack so the best way to clear stack and then replace the name of text view that we want.

Newts
  • 1,354
  • 14
  • 23
  • 1
    +1 for posting a solution to your own question when you solve your own problem, that's a good practice for future reference and can help other people – Guillaume Dec 03 '11 at 12:09
  • 2
    An answer to your own question is only a good thing if it's understandable. – Bart Sipes Sep 07 '12 at 14:47