我想简单地将TextView
放在CardView
内,但无济于事。我需要做的就是让两个数字出现在两个CardViews
之内。目前,在下面的代码中,出现两个CardViews
,但不显示任何文本/内容。Android CardView不显示内容
我已经尝试了很多不同的组合,但似乎没有工作!将TextView
放在LinearLayout
内不起作用,也不会使其成为CardView
的直接子项。
这里是我当前的代码:
calendar_view.xml
<?xml version="1.0" encoding="utf-8"?>
<hoo.box.facecalendar.SquareCardView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
card_view:cardCornerRadius="4dp"
card_view:cardUseCompatPadding="true"
android:id="@+id/calendar_view_card"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/calendar_view_day"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:gravity="center"
android:singleLine="true"
android:textColor="@color/primary_text"/>
</RelativeLayout>
</hoo.box.facecalendar.SquareCardView>
SquareCardView.java
public class SquareCardView extends CardView {
public SquareCardView(Context context) {
super(context);
}
public SquareCardView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public SquareCardView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
final int width = getDefaultSize(getSuggestedMinimumWidth(), widthMeasureSpec);
setMeasuredDimension(width, width);
}
}
CalendarAdapter.java
public class CalendarAdapter extends RecyclerView.Adapter<CalendarAdapter.CalendarViewHolder> {
private LayoutInflater inflater;
private Date curDate;
private List<Date> dateList;
public CalendarAdapter(Context context) {
inflater = LayoutInflater.from(context);
curDate = new Date();
dateList = new ArrayList<Date>();
}
@Override
public CalendarViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
View view = inflater.inflate(R.layout.calendar_view, viewGroup, false);
CalendarViewHolder viewHolder = new CalendarViewHolder(view);
return viewHolder;
}
@Override
public void onBindViewHolder(CalendarViewHolder calendarViewHolder, int i) {
if (dateList.size() <= i) {
Date tempDate = new Date(curDate);
tempDate.addDays(i + 1);
dateList.add(i, tempDate);
}
Date iDate = dateList.get(i);
calendarViewHolder.TEXTVIEW.setText(Integer.toString(iDate.day));
}
@Override
public int getItemCount() { return dateList.size() + 1; }
class CalendarViewHolder extends RecyclerView.ViewHolder {
public final TextView TEXTVIEW;
public final SquareCardView CARDVIEW;
public CalendarViewHolder(View itemView) {
super(itemView);
TEXTVIEW = (TextView) itemView.findViewById(R.id.calendar_view_day);
CARDVIEW = (SquareCardView) itemView.findViewById(R.id.calendar_view_card);
}
}
}
只是之前由于任何人谁可以帮助我!这已经让我吃了好几天了!
是否所有这些代码都相关?向我们展示您创建CardView的位置以及将TextView放入其中的代码可能足以向我们展示。 – Reti43 2015-01-09 22:44:05
事情是这样的,我不知道**地球上的哪个**我错了。我认为这可能是一个阶段适配器的问题。 – wincinderith 2015-01-09 23:08:57
查看[mcve](http://stackoverflow.com/help/mcve)和[sscce](http://sscce.org/),了解如何生成重现错误的代码的最小版本或你面临的困难。发布整个代码并期望我们通过每一行都不会让我们的生活变得轻松。有些甚至可能不赞赏所显示的努力。在尝试了几件事情之后,可能仍然是这种情况,您不知道错误来自哪里,但可以记录您的尝试,因此我们不会徒劳地重复相同的步骤。 – Reti43 2015-01-09 23:15:44