2012-06-23 80 views
0

正如在其他一些线程中提到的,我无法从BaseAdapter的Textview中设置文本。android baseAdapter奇怪的错误

每当我试图设置希伯来语字符串里面,我得到一个stackoverflow错误..当设置英文字符串 - 完美的作品 我试图找出哪里exegicly错误是,所以我已经分手每件我的代码,这是我学到了什么: 当我的文本视图嵌套一个新视图内 - 出现的计算器..

在这个XML

有计算器(只在希伯来文字符串):

<?xml version="1.0" encoding="utf-8"?> 
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 

    <TableRow> 

     <include 
      android:layout_width="45dp" 
      android:layout_height="45dp" 
      android:layout_gravity="center_vertical" 
      android:layout_margin="4dp" 
      layout="@layout/list_profile_picture_green" 
      android:padding="4dp" /> 

     <TableLayout android:layout_width="match_parent" 
      android:layout_height="match_parent"> 

     <TextView 
      android:id="@+id/textView1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="TextView" /> 

     </TableLayout> 

    </TableRow> 

</TableLayout> 

此XML完美地显示了希伯来语:

<?xml version="1.0" encoding="utf-8"?> 
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 

    <TableRow> 

     <include 
      android:layout_width="45dp" 
      android:layout_height="45dp" 
      android:layout_gravity="center_vertical" 
      android:layout_margin="4dp" 
      layout="@layout/list_profile_picture_green" 
      android:padding="4dp" /> 



     <TextView 
      android:id="@+id/textView1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="TextView" /> 


    </TableRow> 

</TableLayout> 

这是我的堆栈跟踪:

06-24 00:48:02.565: E/AndroidRuntime(20483): FATAL EXCEPTION: main 
06-24 00:48:02.565: E/AndroidRuntime(20483): java.lang.StackOverflowError 
06-24 00:48:02.565: E/AndroidRuntime(20483): at java.lang.StringBuilder.append(StringBuilder.java:312) 
06-24 00:48:02.565: E/AndroidRuntime(20483): at java.lang.StringBuilder.append(StringBuilder.java:44) 
06-24 00:48:02.565: E/AndroidRuntime(20483): at java.util.Formatter.outputCharSequence(Formatter.java:1114) 
06-24 00:48:02.565: E/AndroidRuntime(20483): at java.util.Formatter.doFormat(Formatter.java:1086) 
06-24 00:48:02.565: E/AndroidRuntime(20483): at java.util.Formatter.format(Formatter.java:1062) 
06-24 00:48:02.565: E/AndroidRuntime(20483): at java.util.Formatter.format(Formatter.java:1031) 
06-24 00:48:02.565: E/AndroidRuntime(20483): at java.lang.String.format(String.java:2183) 
06-24 00:48:02.565: E/AndroidRuntime(20483): at java.lang.String.format(String.java:2157) 
06-24 00:48:02.565: E/AndroidRuntime(20483): at android.text.Styled.drawDirectionalRun(Styled.java:266) 
06-24 00:48:02.565: E/AndroidRuntime(20483): at android.text.Styled.drawText(Styled.java:362) 
06-24 00:48:02.565: E/AndroidRuntime(20483): at android.text.Layout.drawText(Layout.java:1546) 
06-24 00:48:02.565: E/AndroidRuntime(20483): at android.text.Layout.draw(Layout.java:380) 
06-24 00:48:02.565: E/AndroidRuntime(20483): at android.widget.TextView.onDraw(TextView.java:4417) 
06-24 00:48:02.565: E/AndroidRuntime(20483): at android.view.View.draw(View.java:6933) 
06-24 00:48:02.565: E/AndroidRuntime(20483): at android.view.ViewGroup.drawChild(ViewGroup.java:1646) 
06-24 00:48:02.565: E/AndroidRuntime(20483): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
06-24 00:48:02.565: E/AndroidRuntime(20483): at android.view.ViewGroup.drawChild(ViewGroup.java:1644) 
06-24 00:48:02.565: E/AndroidRuntime(20483): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
06-24 00:48:02.565: E/AndroidRuntime(20483): at android.view.ViewGroup.drawChild(ViewGroup.java:1644) 
06-24 00:48:02.565: E/AndroidRuntime(20483): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
06-24 00:48:02.565: E/AndroidRuntime(20483): at android.view.ViewGroup.drawChild(ViewGroup.java:1644) 
06-24 00:48:02.565: E/AndroidRuntime(20483): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
06-24 00:48:02.565: E/AndroidRuntime(20483): at android.widget.AbsListView.dispatchDraw(AbsListView.java:1648) 
06-24 00:48:02.565: E/AndroidRuntime(20483): at android.widget.ListView.dispatchDraw(ListView.java:3217) 
06-24 00:48:02.565: E/AndroidRuntime(20483): at android.view.View.draw(View.java:6936) 
06-24 00:48:02.565: E/AndroidRuntime(20483): at android.widget.AbsListView.draw(AbsListView.java:3030) 
06-24 00:48:02.565: E/AndroidRuntime(20483): at android.view.ViewGroup.drawChild(ViewGroup.java:1646) 
06-24 00:48:02.565: E/AndroidRuntime(20483): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
06-24 00:48:02.565: E/AndroidRuntime(20483): at android.view.View.draw(View.java:6936) 
06-24 00:48:02.565: E/AndroidRuntime(20483): at android.widget.FrameLayout.draw(FrameLayout.java:357) 
06-24 00:48:02.565: E/AndroidRuntime(20483): at android.view.ViewGroup.drawChild(ViewGroup.java:1646) 
06-24 00:48:02.565: E/AndroidRuntime(20483): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
06-24 00:48:02.565: E/AndroidRuntime(20483): at android.view.ViewGroup.drawChild(ViewGroup.java:1644) 
06-24 00:48:02.565: E/AndroidRuntime(20483): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
06-24 00:48:02.565: E/AndroidRuntime(20483): at android.view.ViewGroup.drawChild(ViewGroup.java:1644) 
06-24 00:48:02.565: E/AndroidRuntime(20483): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
06-24 00:48:02.565: E/AndroidRuntime(20483): at android.view.ViewGroup.drawChild(ViewGroup.java:1644) 
06-24 00:48:02.565: E/AndroidRuntime(20483): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
06-24 00:48:02.565: E/AndroidRuntime(20483): at android.view.ViewGroup.drawChild(ViewGroup.java:1644) 
06-24 00:48:02.565: E/AndroidRuntime(20483): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
06-24 00:48:02.565: E/AndroidRuntime(20483): at android.view.ViewGroup.drawChild(ViewGroup.java:1644) 
06-24 00:48:02.565: E/AndroidRuntime(20483): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
06-24 00:48:02.565: E/AndroidRuntime(20483): at android.view.View.draw(View.java:6936) 
06-24 00:48:02.565: E/AndroidRuntime(20483): at android.widget.FrameLayout.draw(FrameLayout.java:357) 
06-24 00:48:02.565: E/AndroidRuntime(20483): at android.view.ViewGroup.drawChild(ViewGroup.java:1646) 
06-24 00:48:02.565: E/AndroidRuntime(20483): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
06-24 00:48:02.565: E/AndroidRuntime(20483): at android.view.ViewGroup.drawChild(ViewGroup.java:1644) 
06-24 00:48:02.565: E/AndroidRuntime(20483): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
06-24 00:48:02.565: E/AndroidRuntime(20483): at android.view.View.draw(View.java:6936) 
06-24 00:48:02.565: E/AndroidRuntime(20483): at android.widget.FrameLayout.draw(FrameLayout.java:357) 
06-24 00:48:02.565: E/AndroidRuntime(20483): at android.view.ViewGroup.drawChild(ViewGroup.java:1646) 
06-24 00:48:02.565: E/AndroidRuntime(20483): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
06-24 00:48:02.565: E/AndroidRuntime(20483): at android.view.ViewGroup.drawChild(ViewGroup.java:1644) 
06-24 00:48:02.565: E/AndroidRuntime(20483): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
06-24 00:48:02.565: E/AndroidRuntime(20483): at android.view.ViewGroup.drawChild(ViewGroup.java:1644) 
06-24 00:48:02.565: E/AndroidRuntime(20483): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
06-24 00:48:02.565: E/AndroidRuntime(20483): at android.view.ViewGroup.drawChild(ViewGroup.java:1644) 
06-24 00:48:02.565: E/AndroidRuntime(20483): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
06-24 00:48:02.565: E/AndroidRuntime(20483): at android.view.ViewGroup.drawChild(ViewGroup.java:1644) 
06-24 00:48:02.565: E/AndroidRuntime(20483): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
06-24 00:48:02.565: E/AndroidRuntime(20483): at android.view.ViewGroup.drawChild(ViewGroup.java:1644) 
06-24 00:48:02.565: E/AndroidRuntime(20483): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
06-24 00:48:02.565: E/AndroidRuntime(20483): at android.view.ViewGroup.drawChild(ViewGroup.java:1644) 
06-24 00:48:02.565: E/AndroidRuntime(20483): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
06-24 00:48:02.565: E/AndroidRuntime(20483): at android.view.View.draw(View.java:6936) 
06-24 00:48:02.565: E/AndroidRuntime(20483): at android.widget.FrameLayout.draw(FrameLayout.java:357) 
06-24 00:48:02.565: E/AndroidRuntime(20483): at android.view.ViewGroup.drawChild(ViewGroup.java:1646) 
06-24 00:48:02.565: E/AndroidRuntime(20483): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
06-24 00:48:02.565: E/AndroidRuntime(20483): at android.view.View.draw(View.java:6936) 
06-24 00:48:02.565: E/AndroidRuntime(20483): at android.widget.FrameLayout.draw(FrameLayout.java:357) 
06-24 00:48:02.565: E/AndroidRuntime(20483): at com.android.internal.policy.impl.P 

任何想法,为什么???

+0

在你的“破碎的”XML中,用希伯来语,如果你的'textView1'对象在'TableRow'内,会发生什么?另外,你在“TextView”中设置文本的代码是什么? – Eric

+0

正如我所说,当它是在一个表行(或任何其他布局),我得到一个stackoverflow ...我设置它简单地通过使用setText(“希伯来字符串”) –

回答

0

文本本身没有错误。当使用这个确切的代码(不包括include)时,我不会在英文和希伯来语中出现任何XML布局错误。

这里的问题是你有太多的嵌套布局。我怀疑这个TableLayout包含在别的东西里面,这是别的,等等......

你必须减少嵌套布局的数量;我怀疑这是一个StackOverflow错误的原因是因为希伯来语从右到左读取并且占用更多空间来表示,所以这是推动内存超过极限的原因。

我相信你有同样的问题列出herehere

减少嵌套布局项目的数量,这应该消失。 (如一般惯例,例如,TableLayout在另一个TableLayout是不好的做法。)This可能会有所帮助。

+0

我实际上已经改变了它,我使用相对布局,我很好奇,看看有没有人能够找出问题所在。 嵌套表是在我的脑海里,但我想你是对的..太多的嵌套元素是对任何人都没有好处...... :)谢谢! –