Android 为什么视图翻转器中出现堆栈溢出错误?
我正在android应用程序中使用viewflipper 我的应用程序在tabhost中有tabhost。当我单击主页选项卡-->单击节食按钮-->时,它会显示新的选项卡,如早餐、午餐等 当我在午餐选项卡中使用视图翻转器时,它有两个按钮主页和办公室,然后两个按钮都按视图翻转器切换布局,但当午餐选项卡打开时,显示堆栈溢出错误 我还尝试了layoutinflater和其他选项,但它显示了相同的错误 这是logcat错误Android 为什么视图翻转器中出现堆栈溢出错误?,android,viewflipper,Android,Viewflipper,我正在android应用程序中使用viewflipper 我的应用程序在tabhost中有tabhost。当我单击主页选项卡-->单击节食按钮-->时,它会显示新的选项卡,如早餐、午餐等 当我在午餐选项卡中使用视图翻转器时,它有两个按钮主页和办公室,然后两个按钮都按视图翻转器切换布局,但当午餐选项卡打开时,显示堆栈溢出错误 我还尝试了layoutinflater和其他选项,但它显示了相同的错误 这是logcat错误 11-16 10:08:48.229: ERROR/AndroidRun
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,以便在您解决自己的问题时发布您自己问题的解决方案。这是一个很好的实践,供将来参考,可以帮助其他人。只有在您自己的问题可以理解的情况下,答案才是一件好事。