gpt4 book ai didi

android - 无法在 recyclerview 适配器类中解析

转载 作者:行者123 更新时间:2023-11-30 05:04:11 25 4
gpt4 key购买 nike

这是我的适配器类代码 -

package com.referral.abhin.myapplication;

import android.app.Activity;
import android.content.ClipData;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Color;
import android.graphics.Typeface;
import android.preference.Preference;
import android.provider.ContactsContract;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v7.widget.PopupMenu;
import android.support.v7.widget.RecyclerView;
import android.text.method.SingleLineTransformationMethod;
import android.util.Base64;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ExpandableListView;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;

import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.database.ChildEventListener;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.Query;
import com.google.firebase.database.ValueEventListener;

import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import java.util.Map;

import static android.content.Context.MODE_PRIVATE;
import static android.view.View.GONE;

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

List<post> objPost;

private FirebaseDatabase mFirebaseDatabaseCheck;
private DatabaseReference mMessagesDatabaseReferenceCheck;
private DatabaseReference mMessagesDatabaseReference_notification;

private FirebaseDatabase mFirebaseDatabaseComment;
private DatabaseReference mMessagesDatabaseReferenceComment;

private FirebaseDatabase mFirebaseDatabaseLikes;
private DatabaseReference mMessagesDatabaseReferenceLikes;

//Constructor - Get data passed in local list
public postAdapter(List<post> objectPost) {
objPost = objectPost;
}

//Inititalizing Shared Preference
SharedPreferences sharedPreferences;
private static final String SHARED_PREF = "sharedPref";


// @Override
// public post getItem(int position) {
// return super.getItem(getCount() - position - 1);
// }

// private final View.OnClickListener mOnClickListener = new MyOnClickListener();

// @Override
// public class ViewHolder extends RecyclerView.ViewHolder{
//
// LayoutInflater inflater = LayoutInflater.from(parent.getContext());
// View view = inflater.inflate(R.layout.itemsinpost, parent, false);
// view.setOnClickListener(mOnClickListener);
// return new postViewHolder(view);
//
// public ViewHolder(View itemView) {
// super(itemView);
// }
// }


//nested class with holder
public class postViewHolder extends RecyclerView.ViewHolder{

TextView companyObj;
TextView locationObj;
TextView categoryObj;
TextView salaryObj;
TextView dateView;
LinearLayout itemsInRecyclerView;

public postViewHolder(View listItemView){
super(listItemView);
companyObj = listItemView.findViewById(R.id.company);
locationObj = listItemView.findViewById(R.id.location);
categoryObj = listItemView.findViewById(R.id.category);
salaryObj = listItemView.findViewById(R.id.salary);
dateView = listItemView.findViewById(R.id.dateTime);
itemsInRecyclerView = listItemView.findViewById(R.id.listViewLayout);
}
}

@NonNull
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.itemsinpost,parent,false);
postViewHolder holder = new postViewHolder(view);
return null;
}

@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
final post objectFile = objPost.get(position);

//Firebase to update Like, Report value and also get called on delete button
mFirebaseDatabaseLikes = FirebaseDatabase.getInstance();
mMessagesDatabaseReferenceLikes = mFirebaseDatabaseLikes.getReference().child("counter");

//Firebase reference called only to update number of comments
mFirebaseDatabaseComment = FirebaseDatabase.getInstance();
mMessagesDatabaseReferenceComment = mFirebaseDatabaseComment.getReference().child("comments");

//Firebase reference to check if the user has already liked the post or not
mFirebaseDatabaseCheck = FirebaseDatabase.getInstance();
mMessagesDatabaseReferenceCheck = mFirebaseDatabaseCheck.getReference().child("check_counter");

//segregate email to userID
String[] emailSegregate = sharedPreferences.getString("email", "anonymous").split("@");
String emailID = emailSegregate[0];

mMessagesDatabaseReference_notification = mFirebaseDatabaseCheck
.getReference()
.child("notification_list")
.child(emailID)
.child(objectFile.getnodeId());

if (objectFile.getType().equals("post"))

{
holder.companyObj.setText(objectFile.getCompany());
holder.companyObj.setVisibility(View.VISIBLE);

holder.locationObj.setText("Location : " + objectFile.getLocation());
holder.locationObj.setVisibility(View.VISIBLE);

holder.categoryObj.setText(objectFile.getField());
holder.categoryObj.setVisibility(View.VISIBLE);

//if package is not empty
if(!objectFile.getminPack().isEmpty() && !objectFile.getminPack().equals("0")) {
//if work exp is not empty
if (!objectFile.getworkExp().isEmpty()) {
holder.salaryObj.setText("₹ " + objectFile.getminPack() + " LPA, " + objectFile.getworkExp() + "+ Years of Work Exp.");
}
//if work exp is empty
else {
holder.salaryObj.setText("₹ " + objectFile.getminPack() + " LPA, " + " Freshers Allowed");
}
}
//if package is empty
else{
//if work exp is not empty
if (!objectFile.getworkExp().isEmpty()) {
holder.salaryObj.setText(objectFile.getworkExp() + "+ Years of Work Exp.");
}
//if work exp is empty
else {
holder.salaryObj.setText("Freshers Allowed");
}
}
holder.salaryObj.setVisibility(View.VISIBLE);

} else

{

holder.companyObj.setText("");
holder.companyObj.setVisibility(GONE);

holder.salaryObj.setText("");
holder.salaryObj.setVisibility(GONE);

holder.locationObj.setText("");
holder.locationObj.setVisibility(GONE);

holder.categoryObj.setText(objectFile.getPost());
holder.categoryObj.setVisibility(View.VISIBLE);
}

// TextView usernameObj = listItemView.findViewById(R.id.username);
// usernameObj.setText(objectFile.getName()); //displays name while username is email address saved in database


final String[] data = objectFile.getDate().split(" ");
String dateReceived = data[0];
String timeReceived = data[1] + " " + data[2];

String[] dateSegregate = dateReceived.split("/");
int d = Integer.parseInt(dateSegregate[0]);
int m = Integer.parseInt(dateSegregate[1]);
int y = Integer.parseInt(dateSegregate[2]);

Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH) + 1;
int date = c.get(Calendar.DATE);

if (date == d && month == m && year == y)

{
holder.dateView.setText(timeReceived);
} else if (d == (date - 1) && month == m && year == y)

{
holder.dateView.setText("Yesterday");
} else

{
holder.dateView.setText(dateReceived);
}

}

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

这是错误 -

enter image description here

如何解决?我已经根据 this 添加了代码工作正常的教程。

当我已经声明了 View Holder 时,为什么它没有获取 companyObj?

最佳答案

将这一行改成这样

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

public class postAdapter extends RecyclerView.Adapter<postAdapter. postViewHolder>{

然后更新这段代码

@NonNull
@Override
public postAdapter.postViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.itemsinpost,parent,false);
// postViewHolder holder = new postViewHolder(view);
return new postViewHolder(view);;
}

@Override
public void onBindViewHolder(@NonNull postAdapter.postViewHolder holder, int position) {

希望这能帮助解决您的问题。

关于android - 无法在 recyclerview 适配器类中解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54852499/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com