2013-03-14 43 views
0

我正在使用相对布局(RL)来保存列表视图(lv)和几个其他小部件,如文本视图(tv),编辑文本(et),然后几个按钮(btn)和最后一个进度条(pb)。

方案
1.当我添加子视图到父容器视图即。相对布局(r1),顺序为:
RL(Btn1→Btn2→tv1→tv2→LV→pb)。
然后我们没有问题,我的意思是没有例外,没有问题。
2.但是,当我做类似于
RL(tv1-> tv2-> LV-> Btn1-> Btn2-> pb)的排序变化。
然后我得到一个classcast异常。查看ListView导致ClassCast异常

注意:这两个按钮应该在列表视图上,因为它们都是社交网站按钮,我的意思是Facebook和Twitter。

XML代码:

<RelativeLayout 
    android:id="@+id/rlfornews" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginBottom="5dip" 
    android:layout_marginTop="5dip" 
    android:background="@drawable/newsbg" 
    android:orientation="vertical" 
    android:paddingBottom="5dip" > 

    <Button 
     android:id="@+id/btnbasetw" 
     android:layout_width="30dip" 
     android:layout_height="30dip" 
     android:layout_alignParentRight="true" 
     android:layout_centerVertical="true" 
     android:layout_marginBottom="10dip" 
     android:layout_marginLeft="5dip" 
     android:layout_marginRight="10dip" 
     android:background="@drawable/twitter_icon" 
     android:visibility="gone" /> 

    <Button 
     android:id="@+id/btnbasefb" 
     android:layout_width="30dip" 
     android:layout_height="30dip" 
     android:layout_centerVertical="true" 
     android:layout_marginBottom="10dip" 
     android:layout_toLeftOf="@id/btnbasetw" 
     android:background="@drawable/facebook_icon" 
     android:visibility="gone" /> 

    <TextView 
     android:id="@+id/tvnewscon" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="3dip" 
     android:background="@drawable/newstitle" 
     android:gravity="center_vertical" 
     android:paddingLeft="8dip" 
     android:shadowColor="@color/black" 
     android:shadowDy="1" 
     android:shadowRadius="1" 
     android:text="@string/news" 
     android:textColor="@color/white" /> 

    <TextView 
     android:id="@+id/tvfornews" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/tvnewscon" 
     android:layout_marginTop="10dip" 
     android:gravity="center" 
     android:text="@string/no_data_found" 
     android:visibility="gone" /> 

    <ListView 
     android:id="@+id/lvdashboardnews" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_below="@id/tvnewscon" 
     android:padding="4dip" 
     android:visibility="visible" > 
    </ListView> 

    <ProgressBar 
     android:id="@+id/pbfornews" 
     style="?android:attr/progressBarStyleSmall" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerInParent="true" /> 
</RelativeLayout> 

注:进度条可能是下面的,但它仅仅是对用户的信息,一些数据加载。当我得到这些数据时,我将其可见性设置为VIEW.GONE状态,并且列表视图已经在那里了! 我的问题是,当我按照第一个情景,即使我从整个时间进度栏,我没有得到类演员异常。但是,当我改变方案2时,我得到了异常。那么,为什么我要得到它呢?

+0

哪里有ClassCastException?你能发布错误日志吗?在更改物品订单后清洁项目。有时它的Eclipse问题 – JafarKhQ 2013-03-14 06:47:43

+0

我得到了错误日志,在 ListView lv =(ListView)findViewById(R.id.lv); 与LV等同于Button的ID! 我无法粘贴日志猫,因为该项目现在不在我身边。但我已经研究了足够好的路线,但这需要时间,无论如何,我会尝试尽快发布日志。 – 2013-03-14 07:04:11

回答

0
  1. 我不知道这些,但可能是你已经使用了Android的原因:layout_below = “@ ID/TextView的”,而不是使用这些Android:layout_below = “@ + ID/TextView的” 所有UI 。

  2. 如果您可以使用LinearLayout来完成这些UI。

+0

它好,因为第二个TextView不占用太多空间,并且在listview无法从服务中获取数据时出现。那时,ListView被迫进入VISIBILITY.GONE状态。 此外,我需要它是一个RelativeLayout,因为我想根据其父的相对位置来定位小部件。 – 2013-03-14 07:08:08