有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Textview无法设置文本,但Imageview正在工作

我的代码有一些问题。我无法设置Textview,但ImageView正在工作。这是我的xml文本视图。我正在使用适配器和侦听器接口。 错误:空对象引用上的textview

 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:安卓="http://schemas.安卓.com/apk/res/安卓"
   安卓:layout_width="match_parent"
   安卓:layout_height="wrap_content"
   安卓:descendantFocusability="blocksDescendants"
   安卓:orientation="vertical"
   xmlns:app="http://schemas.安卓.com/apk/res-auto">
 
    <View
       安卓:layout_width="match_parent"
       安卓:layout_height="@dimen/spacing_middle" />
 
    <安卓x.cardview.widget.CardView
       安卓:layout_width="match_parent"
       安卓:layout_height="wrap_content"
       安卓:layout_marginLeft="@dimen/spacing_middle"
       安卓:layout_marginRight="@dimen/spacing_middle"
       安卓:visibility="visible"
       app:cardCornerRadius="0dp"
       app:cardElevation="4dp">
 
        <LinearLayout
           安卓:layout_width="match_parent"
           安卓:layout_height="wrap_content"
           安卓:orientation="vertical">
 
            <LinearLayout
               安卓:layout_width="match_parent"
               安卓:layout_height="wrap_content"
               安卓:layout_marginBottom="@dimen/spacing_medium"
               安卓:layout_marginLeft="@dimen/spacing_large"
               安卓:layout_marginRight="@dimen/spacing_large"
               安卓:layout_marginTop="@dimen/spacing_large"
               安卓:gravity="center_vertical"
               安卓:orientation="horizontal">
 
                <com.mikhaellopez.circularimageview.CircularImageView
                   安卓:id="@+id/imgGambar"
                   安卓:layout_width="@dimen/spacing_xxlarge"
                   安卓:layout_height="@dimen/spacing_xxlarge"
                   安卓:foreground="@color/overlay_light_20"
                   app:civ_shadow="true"
                   app:civ_shadow_radius="0"
                   安卓:src="@drawable/photo_female_2"
                   app:civ_border="false" />
 
                <View
                   安卓:layout_width="@dimen/spacing_large"
                   安卓:layout_height="0dp" />
 
                <LinearLayout
                   安卓:layout_width="match_parent"
                   安卓:layout_height="wrap_content"
                   安卓:orientation="vertical">
 
                    <TextView
                       安卓:id="@+id/tvName"
                       安卓:layout_width="match_parent"
                       安卓:layout_height="wrap_content"
                       安卓:gravity="center_vertical"
                       安卓:text="Emma Richmond"
                       安卓:textAppearance="@style/TextAppearance.AppCompat.Subhead"
                       安卓:textColor="@color/grey_90" />
 
                    <LinearLayout
                       安卓:layout_width="wrap_content"
                       安卓:layout_height="wrap_content"
                       安卓:layout_marginTop="@dimen/spacing_small"
                       安卓:orientation="horizontal">
 
                        <TextView
                           安卓:layout_width="match_parent"
                           安卓:layout_height="wrap_content"
                           安卓:gravity="center_vertical"
                           安卓:text="in "
                           安卓:textAppearance="@style/TextAppearance.AppCompat.Caption"
                           安卓:textColor="@color/grey_40" />
 
                        <TextView
                           安卓:layout_width="match_parent"
                           安卓:layout_height="wrap_content"
                           安卓:gravity="center_vertical"
                           安卓:text="Hwy, Carthage"
                           安卓:textAppearance="@style/TextAppearance.AppCompat.Caption"
                           安卓:textColor="@color/light_blue_400"
                           安卓:textStyle="bold" />
 
                    </LinearLayout>
 
                </LinearLayout>
 
            </LinearLayout>
 
            <TextView
               安卓:id="@+id/tvKonten"
               安卓:layout_width="wrap_content"
               安卓:layout_height="wrap_content"
               安卓:layout_margin="@dimen/spacing_large"
               安卓:lineSpacingExtra="4dp"
               安卓:text="@string/middle_lorem_ipsum"
               安卓:textAppearance="@style/TextAppearance.AppCompat.Caption"
               安卓:textColor="@color/grey_60" />
 
            <View
               安卓:layout_width="match_parent"
               安卓:layout_height="1dp"
               安卓:layout_marginTop="@dimen/spacing_medium"
               安卓:background="@color/grey_5" />
 
            <LinearLayout
               安卓:layout_width="match_parent"
               安卓:layout_height="@dimen/spacing_xxlarge"
               安卓:gravity="center_vertical"
               安卓:orientation="horizontal"
               安卓:paddingLeft="@dimen/spacing_large"
               安卓:paddingRight="@dimen/spacing_large">
 
                <LinearLayout
                   安卓:layout_width="wrap_content"
                   安卓:layout_height="wrap_content"
                   安卓:gravity="center_vertical"
                   安卓:orientation="horizontal">
 
                    <ImageView
                       安卓:id="@+id/imgLike"
                       安卓:layout_width="@dimen/spacing_mlarge"
                       安卓:layout_height="@dimen/spacing_mlarge"
                       安卓:layout_marginEnd="@dimen/spacing_middle"
                       安卓:layout_marginRight="@dimen/spacing_middle"
                       安卓:tint="@color/light_green_300"
                       安卓:src="@drawable/ic_thumb_up" />
 
                    <TextView
                       安卓:id="@+id/txtsuka"
                       安卓:layout_width="wrap_content"
                       安卓:layout_height="wrap_content"
                       安卓:gravity="center_vertical"
                       安卓:text="12 likes"
                       安卓:textAppearance="@style/TextAppearance.AppCompat.Caption"
                       安卓:textColor="@color/grey_40" />
 
                </LinearLayout>
 
                <View
                   安卓:layout_width="@dimen/spacing_large"
                   安卓:layout_height="0dp" />
 
                <LinearLayout
                   安卓:layout_width="0dp"
                   安卓:layout_height="wrap_content"
                   安卓:layout_weight="1"
                   安卓:gravity="center_vertical"
                   安卓:orientation="horizontal">
 
                    <ImageView
                       安卓:layout_width="@dimen/spacing_mlarge"
                       安卓:layout_height="@dimen/spacing_mlarge"
                       安卓:layout_marginEnd="@dimen/spacing_middle"
                       安卓:layout_marginRight="@dimen/spacing_middle"
                       安卓:tint="@color/light_blue_400"
                       安卓:src="@drawable/ic_textsms" />
 
                    <TextView
                       安卓:id="@+id/tvKomentar"
                       安卓:layout_width="wrap_content"
                       安卓:layout_height="wrap_content"
                       安卓:gravity="center_vertical"
                       安卓:text="4 Comments"
                       安卓:textAppearance="@style/TextAppearance.AppCompat.Caption"
                       安卓:textColor="@color/grey_40" />
 
                </LinearLayout>
 
                <TextView
                   安卓:id="@+id/tvLalu"
                   安卓:layout_width="wrap_content"
                   安卓:layout_height="wrap_content"
                   安卓:gravity="end|right"
                   安卓:text="2h ago"
                   安卓:textAppearance="@style/TextAppearance.AppCompat.Body1"
                   安卓:textColor="@color/grey_40" />
 
            </LinearLayout>
 
        </LinearLayout>
    </安卓x.cardview.widget.CardView>
</LinearLayout>

这是我的适配器:https://pastebin.com/csiW52h4

public class AdapterCardPostList extends RecyclerView.Adapter<AdapterCardPostList.ViewHolder> {

    private Context context;
    private List<PostItem> list;
    private List<Check> checkList;
    private OnItemClickListener mOnItemClickListener;


    public AdapterCardPostList(Context context, List<PostItem> list, List<Check> checkList, OnItemClickListener monItemClickListener) {
        this.context = context;
        this.list = list;
        this.checkList = checkList;
        this.mOnItemClickListener = monItemClickListener;
    }

    public class ViewHolder extends RecyclerView.ViewHolder {
        // each data item is just a string in this case
        public ImageView image, imglike;
        public TextView name;
        public TextView konten;
        public TextView like;
        public TextView komentar;
        public TextView lalu;

        public ViewHolder(View v) {
            super(v);
            image    = (ImageView) v.findViewById(R.id.imgGambar);
            name     = (TextView) v.findViewById(R.id.tvName);
            konten   = (TextView) v.findViewById(R.id.tvKonten);
            like     = (TextView) v.findViewById(R.id.txtsuka);
            komentar = (TextView) v.findViewById(R.id.tvKomentar);
            lalu     = (TextView) v.findViewById(R.id.tvLalu);
            imglike  = (ImageView) v.findViewById(R.id.imgLike);
            imglike.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    mOnItemClickListener.onItemClick(view, checkList.get(getAdapterPosition()), getAdapterPosition(), list.get(getAdapterPosition()));
                }
            });

        }
    }
    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        LayoutInflater layoutInflater = LayoutInflater.from(parent.getContext());
        View v = layoutInflater.inflate(R.layout.item_post, parent, false);
        ViewHolder vh = new ViewHolder(v);
        return vh;
    }



     @Override
     public void onBindViewHolder(ViewHolder holder, final int position) {
             PostItem p = list.get(position);
             holder.konten.setText(p.getContent());
             holder.like.setText(p.getLike());
             holder.name.setText(p.getName());
             SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
             //sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
             try {
                // long time = sdf.parse(p.getTanggal()).getTime();
                 Date date = sdf.parse(p.getTanggal());
                 long now = System.currentTimeMillis();
                 CharSequence ago =
                         DateUtils.getRelativeTimeSpanString(date.getTime(), now, DateUtils.MINUTE_IN_MILLIS);
                 holder.lalu.setText(ago);
             } catch (ParseException e) {
                 e.printStackTrace();
                 Toast.makeText(context, e.getMessage(), Toast.LENGTH_SHORT).show();
             }
         holder.komentar.setText(p.getKomen() + " Comments");
             Glide.with(context).load("https://graph.facebook.com/" + p.getUid() + "/picture?type=normal").into(holder.image);
             if (p.getUid().equals(MainActivity.id)){
                 holder.imglike.setColorFilter(ContextCompat.getColor(context, R.color.red_200), 安卓.graphics.PorterDuff.Mode.MULTIPLY);
                 checkList.add(new Check(true));
             }else{
                 holder.imglike.setColorFilter(ContextCompat.getColor(context, R.color.light_green_300), 安卓.graphics.PorterDuff.Mode.MULTIPLY);
                 checkList.add(new Check(false));
             }

     }


    @Override
    public int getItemCount() {
        return list.size();
    }
}

我的错误是这样的 enter image description here

为什么我的imageview工作但textview不工作

谢谢大家的关注


共 (3) 个答案

  1. # 1 楼答案

    这是因为idtvKonten不存在。在XML代码中,文本视图的id是txtsuka,而不是tvKonten。将tvKonten更改为txtsuka

  2. # 2 楼答案

    请尝试以下选项,它可能适合您:

    1. 使缓存无效并重新启动
    2. 检查res文件夹中是否有相同布局文件的不同版本,例如...v26.xml或类似的内容;如果您发现任何不需要的版本,请删除该文件
  3. # 3 楼答案

    mOnItemClickListener.onItemClick(view, checkList.get(getAdapterPosition()), getAdapterPosition(), list.get(getAdapterPosition()));
    

    改为

    mOnItemClickListener.onItemClick(v, checkList.get(getAdapterPosition()), getAdapterPosition(), list.get(getAdapterPosition()));