Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 为什么视图翻转器中出现堆栈溢出错误?_Android_Viewflipper - Fatal编程技术网

Android 为什么视图翻转器中出现堆栈溢出错误?

Android 为什么视图翻转器中出现堆栈溢出错误?,android,viewflipper,Android,Viewflipper,我正在android应用程序中使用viewflipper 我的应用程序在tabhost中有tabhost。当我单击主页选项卡-->单击节食按钮-->时,它会显示新的选项卡,如早餐、午餐等 当我在午餐选项卡中使用视图翻转器时,它有两个按钮主页和办公室,然后两个按钮都按视图翻转器切换布局,但当午餐选项卡打开时,显示堆栈溢出错误 我还尝试了layoutinflater和其他选项,但它显示了相同的错误 这是logcat错误 11-16 10:08:48.229: ERROR/AndroidRun

我正在android应用程序中使用viewflipper

我的应用程序在tabhost中有tabhost。当我单击主页选项卡-->单击节食按钮-->时,它会显示新的选项卡,如早餐、午餐等

当我在午餐选项卡中使用视图翻转器时,它有两个按钮主页办公室,然后两个按钮都按视图翻转器切换布局,但当午餐选项卡打开时,显示堆栈溢出错误

我还尝试了layoutinflater和其他选项,但它显示了相同的错误

这是logcat错误

    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
代码在这里

    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);




    }
};
RelativeLayout rel1,rel2,rel3,rel4,rel5,rel6,
是,不是;
图像按钮rad_是,rad_否;
text查看lbl_是,lbl_否;
布尔值yesNoChk=false;
布尔have_午餐=false;
RelativeLayout flip1、flip2;
视窗翻转器;
意大利面,米饭,汤,莱格姆,意大利面;
线性布局lin1;
int i,j;
切换按钮[]imgArray1;
切换按钮[]imgArray2;
切换按钮[]imgArray3;
切换按钮[]imgArray4;
切换按钮[]imgArray5;
相对物项;
按钮btn;
串缓冲味精;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
//TODO自动生成的方法存根
super.onCreate(savedInstanceState);
setContentView(右布局,午餐);
rad_Yes=(图像按钮)findViewById(R.id.午餐\无线电\办公室);
rad_No=(ImageButton)findViewById(R.id.午餐\收音机\家庭);
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);
如果(!yesNoChk)
{ 
rel5=(RelativeLayout)findViewById(R.id.main_rel5);
}   
imgArray1=新的切换按钮[7];

对于(j=0;j噢!我明白我的意思了,我需要更改文本框的值,这对我来说很简单。因为我的布局在tab中的tab中。所以它不能清除堆栈,所以最好的方法是清除堆栈,然后替换我们想要的文本视图的名称。

我们必须看到更多的代码。堆栈溢出意味着它在某个地方陷入无限循环(我的猜测是,可能有什么东西弄乱了,视图正抓住焦点/需要绘制)@Blaskovicz我已经发布了我的源代码,请再次检查+1,以便在您解决自己的问题时发布您自己问题的解决方案。这是一个很好的实践,供将来参考,可以帮助其他人。只有在您自己的问题可以理解的情况下,答案才是一件好事。