J'utilise viewflipper dans une application android.Pourquoi erreur stackoverflow dans la vue flipper?
Mon application a l'onglet tab dans tabhost. Lorsque je clique sur l'onglet Accueil -> cliquez sur le bouton alimentation -> il affiche les nouveaux tabhost comme le petit déjeuner, le déjeuner, etc.
quand je suis vue utilisation Flipper dans onglet déjeuner, qui a deux boutons Accueil et bureau et puis la disposition des deux interrupteurs de bouton par flipper de vue, mais quand l'onglet de déjeuner ouvert il montre erreur de stackoverflow.
J'essaye également layoutinflater et d'autres options attendez la vue flipper mais elle montre la même erreur.
Cette erreur est 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
Le code est ici
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);
}
};
Nous devrions voir plus de code. Le dépassement de pile signifie qu'il est coincé dans une boucle infinie quelque part (je suppose que quelque chose peut être foiré avec quelle vue saisit le focus/doit être dessiné). – Blaskovicz
@Blaskovicz J'ai posté mon code source s'il vous plaît vérifier à nouveau – Newts