2011-12-19 38 views
1

我有一个标签主机,whoa内容又是标签主机。 主标签主机是第一个,所有内容都在第一个显示。 在第二个标签主机中,我有一个tabactivity,其内容是listview。 当我滚动向下与消息中的第二列表视图崩溃:这里StackoverflowException当在Android列表视图中向下滚动时

12-19 18:00:59.262: E/AndroidRuntime(1296): FATAL EXCEPTION: main 
12-19 18:00:59.262: E/AndroidRuntime(1296): java.lang.StackOverflowError 
12-19 18:00:59.262: E/AndroidRuntime(1296):  at android.text.Styled.measureText(Styled.java:430) 
12-19 18:00:59.262: E/AndroidRuntime(1296):  at android.text.Layout.measureText(Layout.java:1655) 
12-19 18:00:59.262: E/AndroidRuntime(1296):  at android.text.Layout.getLineMax(Layout.java:689) 
12-19 18:00:59.262: E/AndroidRuntime(1296):  at android.text.Layout.draw(Layout.java:340) 
12-19 18:00:59.262: E/AndroidRuntime(1296):  at android.text.BoringLayout.draw(BoringLayout.java:365) 
12-19 18:00:59.262: E/AndroidRuntime(1296):  at android.widget.TextView.onDraw(TextView.java:4050) 
12-19 18:00:59.262: E/AndroidRuntime(1296):  at android.view.View.draw(View.java:6740) 
12-19 18:00:59.262: E/AndroidRuntime(1296):  at android.view.ViewGroup.drawChild(ViewGroup.java:1640) 
12-19 18:00:59.262: E/AndroidRuntime(1296):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367) 
12-19 18:00:59.262: E/AndroidRuntime(1296):  at android.view.ViewGroup.drawChild(ViewGroup.java:1638) 
12-19 18:00:59.262: E/AndroidRuntime(1296):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367) 
12-19 18:00:59.262: E/AndroidRuntime(1296):  at android.view.View.draw(View.java:6743) 
12-19 18:00:59.262: E/AndroidRuntime(1296):  at android.view.View.buildDrawingCache(View.java:6502) 
12-19 18:00:59.262: E/AndroidRuntime(1296):  at android.view.View.getDrawingCache(View.java:6288) 
12-19 18:00:59.262: E/AndroidRuntime(1296):  at android.view.ViewGroup.drawChild(ViewGroup.java:1565) 
12-19 18:00:59.262: E/AndroidRuntime(1296):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367) 
12-19 18:00:59.262: E/AndroidRuntime(1296):  at android.widget.AbsListView.dispatchDraw(AbsListView.java:1365) 
12-19 18:00:59.262: E/AndroidRuntime(1296):  at android.widget.ListView.dispatchDraw(ListView.java:3046) 
12-19 18:00:59.262: E/AndroidRuntime(1296):  at android.view.View.draw(View.java:6846) 
12-19 18:00:59.262: E/AndroidRuntime(1296):  at android.widget.AbsListView.draw(AbsListView.java:2257) 
12-19 18:00:59.262: E/AndroidRuntime(1296):  at android.view.ViewGroup.drawChild(ViewGroup.java:1640) 
12-19 18:00:59.262: E/AndroidRuntime(1296):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367) 
12-19 18:00:59.262: E/AndroidRuntime(1296):  at android.view.View.draw(View.java:6743) 
12-19 18:00:59.262: E/AndroidRuntime(1296):  at android.view.ViewGroup.drawChild(ViewGroup.java:1640) 
12-19 18:00:59.262: E/AndroidRuntime(1296):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367) 
12-19 18:00:59.262: E/AndroidRuntime(1296):  at android.view.View.draw(View.java:6743) 
12-19 18:00:59.262: E/AndroidRuntime(1296):  at android.view.ViewGroup.drawChild(ViewGroup.java:1640) 
12-19 18:00:59.262: E/AndroidRuntime(1296):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367) 
12-19 18:00:59.262: E/AndroidRuntime(1296):  at android.view.View.draw(View.java:6743) 
12-19 18:00:59.262: E/AndroidRuntime(1296):  at android.widget.FrameLayout.draw(FrameLayout.java:352) 
12-19 18:00:59.262: E/AndroidRuntime(1296):  at android.view.ViewGroup.drawChild(ViewGroup.java:1640) 
12-19 18:00:59.262: E/AndroidRuntime(1296):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367) 
12-19 18:00:59.262: E/AndroidRuntime(1296):  at android.view.ViewGroup.drawChild(ViewGroup.java:1638) 
12-19 18:00:59.262: E/AndroidRuntime(1296):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367) 
12-19 18:00:59.262: E/AndroidRuntime(1296):  at android.view.ViewGroup.drawChild(ViewGroup.java:1638) 
12-19 18:00:59.262: E/AndroidRuntime(1296):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367) 
12-19 18:00:59.262: E/AndroidRuntime(1296):  at android.view.ViewGroup.drawChild(ViewGroup.java:1638) 
12-19 18:00:59.262: E/AndroidRuntime(1296):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367) 
12-19 18:00:59.262: E/AndroidRuntime(1296):  at android.view.View.draw(View.java:6743) 
12-19 18:00:59.262: E/AndroidRuntime(1296):  at android.widget.FrameLayout.draw(FrameLayout.java:352) 
12-19 18:00:59.262: E/AndroidRuntime(1296):  at android.view.ViewGroup.drawChild(ViewGroup.java:1640) 
12-19 18:00:59.262: E/AndroidRuntime(1296):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367) 
12-19 18:00:59.262: E/AndroidRuntime(1296):  at android.view.View.draw(View.java:6743) 
12-19 18:00:59.262: E/AndroidRuntime(1296):  at android.view.ViewGroup.drawChild(ViewGroup.java:1640) 
12-19 18:00:59.262: E/AndroidRuntime(1296):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367) 
12-19 18:00:59.262: E/AndroidRuntime(1296):  at android.view.View.draw(View.java:6743) 
12-19 18:00:59.262: E/AndroidRuntime(1296):  at android.view.ViewGroup.drawChild(ViewGroup.java:1640) 
12-19 18:00:59.262: E/AndroidRuntime(1296):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367) 
12-19 18:00:59.262: E/AndroidRuntime(1296):  at android.view.View.draw(View.java:6743) 
12-19 18:00:59.262: E/AndroidRuntime(1296):  at android.widget.FrameLayout.draw(FrameLayout.java:352) 
12-19 18:00:59.262: E/AndroidRuntime(1296):  at android.view.ViewGroup.drawChild(ViewGroup.java:1640) 
12-19 18:00:59.262: E/AndroidRuntime(1296):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367) 
12-19 18:00:59.262: E/AndroidRuntime(1296):  at android.view.ViewGroup.drawChild(ViewGroup.java:1638) 
12-19 18:00:59.262: E/AndroidRuntime(1296):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367) 
12-19 18:00:59.262: E/AndroidRuntime(1296):  at android.view.ViewGroup.drawChild(ViewGroup.java:1638) 
12-19 18:00:59.262: E/AndroidRuntime(1296):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367) 
12-19 18:00:59.262: E/AndroidRuntime(1296):  at android.view.ViewGroup.drawChild(ViewGroup.java:1638) 
12-19 18:00:59.262: E/AndroidRuntime(1296):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367) 
12-19 18:00:59.262: E/AndroidRuntime(1296):  at android.view.ViewGroup.drawChild(ViewGroup.java:1638) 
12-19 18:00:59.262: E/AndroidRuntime(1296):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367) 
12-19 18:00:59.262: E/AndroidRuntime(1296):  at android.view.View.draw(View.java:6743) 
12-19 18:00:59.262: E/AndroidRuntime(1296):  at android.widget.FrameLayout.draw(FrameLayout.java:352) 
12-19 18:00:59.262: E/AndroidRuntime(1296):  at android.view.ViewGroup.drawChild(ViewGroup.java:1640) 
12-19 18:00:59.262: E/AndroidRuntime(1296):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367) 
12-19 18:00:59.262: E/AndroidRuntime(1296):  at android.view.View.draw(View.java:6743) 
12-19 18:00:59.262: E/AndroidRuntime(1296):  at android.widget.FrameLayout.draw(FrameLayout.java:352) 
12-19 18:00:59.262: E/AndroidRuntime(1296):  at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:1842) 
12-19 18:00:59.262: E/AndroidRuntime(1296):  at android.view.ViewRoot.draw(ViewRoot.java:1407) 
12-19 18:00:59.262: E/AndroidRuntime(1296):  at android.view.ViewRoot.performTraversals(ViewRoot.java:1163) 
12-19 18:00:59.262: E/AndroidRuntime(1296):  at android.view.ViewRoot.handleMessage(ViewRoot.java:1727) 
12-19 18:00:59.262: E/AndroidRuntime(1296):  at android.os.Handler.dispatchMessage(Handler.java:99)

我用一个ListView

 
public class Standings extends Activity implements OnItemClickListener { 


    @Override 
    public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.standings_layout); 

      CompetitionCommand compCmd = new CompetitionCommand(); 
      ArrayList teams = compCmd.getTeams(); 


      ListView newsListView = (ListView) findViewById(R.id.lv_standings); 

      StandingsListAdapter adapter = new StandingsListAdapter(this,teams); 
      newsListView.setAdapter(adapter); 
      adapter.notifyDataSetChanged(); 
      newsListView.invalidate(); 
      newsListView.setOnItemClickListener(this); 


    } 
 
public class StandingsListAdapter extends BaseAdapter { 



    private LayoutInflater mInflater; 
    private ArrayList teams; 

    public StandingsListAdapter(Context context,ArrayList aTeams) 
    { 
      this.mInflater = LayoutInflater.from(context); 
      this.teams=aTeams; 
    } 

    public int getCount() 
    { 
     return teams.size(); 
    } 

    public Object getItem(int position) 
    { 
     return position; 
    } 

    public long getItemId(int position) 
    { 
     return position; 
    } 


    public View getView(int position, View convertView, ViewGroup parent) 
    { 


     ViewHolder holder; 

     Team team = teams.get(position); 

     if (convertView == null) 
     { 
      convertView = mInflater.inflate(R.layout.list_stand_row, null); 
      holder = new ViewHolder(); 
      holder.st_place = (TextView) convertView.findViewById(R.id.tv_team_place); 
      holder.st_team_name = (TextView) convertView.findViewById(R.id.tv_team_name); 
      holder.st_played= (TextView) convertView.findViewById(R.id.tv_team_played); 
      holder.st_won= (TextView) convertView.findViewById(R.id.tv_team_won); 
      holder.st_drawn = (TextView) convertView.findViewById(R.id.tv_team_drawn); 
      holder.st_lost= (TextView) convertView.findViewById(R.id.tv_team_lost); 
      holder.st_goals_for= (TextView) convertView.findViewById(R.id.tv_team_goals_for); 
      holder.st_goals_against= (TextView) convertView.findViewById(R.id.tv_team_goals_against); 
      holder.st_points =(TextView) convertView.findViewById(R.id.tv_team_points); 
      convertView.setTag(holder); 
     } 
     else 
     { 
      holder = (ViewHolder)convertView.getTag(); 
     } 


     holder.st_place.setText(team.getPlace()); 
     holder.st_team_name.setText(team.getTeam_name()); 
     holder.st_played.setText(team.getPlayed()); 
     holder.st_won.setText(team.getWon()); 
     holder.st_drawn.setText(team.getDrawn()); 
     holder.st_lost.setText(team.getLost()); 
     holder.st_goals_for.setText(team.getGoals_for()); 
     holder.st_goals_against.setText(team.getGoals_against()); 
     holder.st_points.setText(team.getPoints()); 


     return convertView; 
    } 



     static class ViewHolder 
     { 
       TextView st_team_name; 
       TextView st_place; 
       TextView st_played; 
       TextView st_won; 
       TextView st_drawn; 
       TextView st_lost; 
       TextView st_points; 
       TextView st_goals_for; 
       TextView st_goals_against; 
       TextView st_points_deduction; 
     } 

} 
+0

任何更新内?它解决了吗?我在这里有同样的问题。我的布局很简单。嵌套的线性布局被更简单的布局布局等所取代。我不知道我在做什么错误的代码。谁能帮忙? – 2014-12-01 11:51:00

回答

0

只是检查你的布局,你弹出的列表视图。如果您使用嵌套的Linearlayouts,则可能会出现此类问题。首选RelativeLayouts。通货膨胀要快得多。

阅读this也是如此。

+0

最有趣的是,如果我设置这个第二个活动的意图为tabhost工作没有问题,滚动等。请帮助! – user1106234 2011-12-19 18:37:53

+0

可能是问题是我在主tabhost中填充这么多视图? – user1106234 2011-12-20 20:01:08

+0

可能是。你能给我们更多的信息来帮助你吗?你所提供的信息对于解决你的问题是非常基本的。提到更多的细节,如列表视图和主要的XML的整个XML代码。你怎么膨胀你的意见等... – san 2011-12-20 22:47:05

0

您R.layout.standings_layout一定要多多LinearLayouts的其他

相关问题