我给视图充气。使用新创建的布局,我找到一个孩子来设置属性。但我得到的孩子(这里的饭菜)不是好孩子。让我的mealList包含多个mealName,它总是第一个返回的。
RelativeLayout mealNameLayout = (RelativeLayout) inflater.inflate(R.layout.planner_list_item_meal_title, mealList);
TextView mealName = (TextView) mealNameLayout.findViewById(R.id.mealName);
//Set meal name.
mealName.setText(meal.name);
正如您所看到的,mealNameLayout只有一个孩子的" mealName" ID。
知道发生了什么事吗?
名单膨胀:
<LinearLayout
android:padding="3dip"
android:id="@+id/mealList"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
</LinearLayout>
并添加了项目:
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/mealName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:text="meatballs"
android:textColorLink="@android:color/darker_gray"
android:textSize="16sp" />
</LinearLayout>
答案 0 :(得分:1)
当拥有多个具有相同ID的项目时,使用findViewById似乎不是一个好主意。
是的,这是一个坏主意。考虑重新设计布局以避免在一个视图中出现多个相等的ID。