код Java:
public class Viewhirings extends AppCompatActivity {
ArrayList<Object> appliedmembersobj = new ArrayList<>();
ArrayList<Object> appliedmembernames = new ArrayList<>();
String curmember,existhireobj;
RecyclerView rv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_viewhirings);
Bundle bundle = getIntent().getExtras();
curmember = bundle.getString("obj");
existhireobj=bundle.getString("existhire");
rv= (RecyclerView)findViewById(R.id.rv_recycler_view);
ParseQuery<ParseObject> query = ParseQuery.getQuery("jobs");
query.findInBackground(new FindCallback<ParseObject>() {
public void done(List<ParseObject> objects, ParseException e) {
if (e == null) {
if (objects.size() > 0) {
for (ParseObject object : objects) {
appliedmembersobj = (ArrayList<Object>) object.getList("whoget");
}
} else {
Toast.makeText(getApplicationContext(), "No employee found",
Toast.LENGTH_LONG).show();
}
} else {
Log.d("awserror","left or right");
}
}
});
rv.setHasFixedSize(true);
LinearLayoutManager llm = new LinearLayoutManager(getApplicationContext());
rv.setLayoutManager(llm);
for (int i=0;i<appliedmembersobj.size();i++){
retriveinfo(String.valueOf(appliedmembersobj.get(i)));
}
Toast.makeText(getApplicationContext(), String.valueOf(appliedmembersobj.size()),
Toast.LENGTH_LONG).show();
String[] namesArray = new String[appliedmembernames.size()];
namesArray = appliedmembernames.toArray(namesArray);
MyAdapter adapter = new MyAdapter(namesArray);
rv.setAdapter(adapter);
}
public void retriveinfo(String obj){
ParseQuery<ParseObject> queryloc = ParseQuery.getQuery("jobop");
queryloc.whereEqualTo("objectId", obj);
queryloc.getFirstInBackground(new GetCallback<ParseObject>() {
public void done(ParseObject object, ParseException e) {
if (object == null) {
Toast.makeText(getApplicationContext(), "No name found",
Toast.LENGTH_LONG).show();
} else {
String s=object.getString("name");
String escape=String.valueOf(s);
Log.d("varudhu",escape);
appliedmembernames.add(escape);
}
}
});
}
}
Я не могу установить значения для моего адаптера, когда я делаю отступ для адаптера, я не показываю никакого значения, но когда я записываю значения, показывающие значения, я думаю, что это из-за того, что мой метод find inbackground запущен фон, поэтому я не могу получить значения одновременно, но я не знаю альтернатив
Это мой код адаптера
открытый класс MyAdapter расширяет RecyclerView.Adapter {
private String[] mDatasetname;
private Integer[] mDatasetearnings;
private Integer[] mDatasetrat;
private Integer[] mtotaljobs;
private String[] mid;
private Float[] mrest;
public static class MyViewHolder extends RecyclerView.ViewHolder{
public CardView mCardView;
public TextView mTextView;
public TextView totaljobs;
public TextView rest;
public RatingBar rate;
public MyViewHolder(View v){
super(v);
mCardView = (CardView) v.findViewById(R.id.card_view);
mTextView = (TextView) v.findViewById(R.id.tv_text);
rate= (RatingBar) v.findViewById(R.id.tv_blah);
totaljobs= (TextView) v.findViewById(R.id.idtotaljobs);
rest=(TextView)v.findViewById(R.id.setrestid);
}
}
public MyAdapter(String[] myDataset){
mDatasetname = myDataset;
}
@Override
public MyAdapter.MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType){
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.card_item, parent, false);
MyViewHolder vh = new MyViewHolder(v);
return vh;
}
@Override
public void onBindViewHolder(MyViewHolder holder, final int position){
holder.mTextView.setText(mDatasetname[position]);
holder.mCardView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Log.d("pos", mid[position]);
Toast.makeText(view.getContext(), mid[position],
Toast.LENGTH_LONG).show();
}
});
}
@Override
public int getItemCount() { return mDatasetname.length; }
}