[英]trying to pass an int variable from Activity to Adapter
我正在嘗試將Activity1
的int pub_or_priv
傳遞給Myadapter
。
我看過這里的帖子,我認為我已經正確地遵循了它們,但仍然無法正常工作。 在我的值adapter
總是0
,而它應該是0
, 1
或2
,如在我的所述值的情況下Activity1
。
這就是我所做的。
在我的Activity1
我從服務器獲取"publicorprivate"
並將其轉換為一個int
:
//convert public_or_private to an integer
pub_or_priv = Integer.parseInt(obj.getString("publicorprivate"));
在我的不同小區recyclerView
這將是0
, 1
或2
。
現在,我想將此傳遞給adapter
以便在adapter
contructor
具有:
public MyAdapter(List<Review> reviewUsers, Activity activity, int pub_or_priv) {
this.activity = activity;
the_reviews = reviewUsers;
this.mPub_or_priv = pub_or_priv;
}
在我的Activity1
:
pAdapter = new MyAdapter(reviewList, this, pub_or_priv);
然后在MyAdapter
:
@Override
public void onBindViewHolder(final RecyclerView.ViewHolder viewHolder, final int position) {
Review r = the_reviews.get(position);
//shared_status will be Just U, Private or Public
String shared_status ="";
if(mPub_or_priv==0){
//change colour depending on value
((ReviewHolder) viewHolder).phone_user_name.setTextColor(Color.parseColor("#DA850B"));
shared_status = "Just U";
}
if(mPub_or_priv==1){
((ReviewHolder) viewHolder).phone_user_name.setTextColor(Color.parseColor("#0A7FDA"));
shared_status = "Private";
}
if(mPub_or_priv==2){
((ReviewHolder) viewHolder).phone_user_name.setTextColor(Color.parseColor("#2AB40E"));
shared_status = "Public";
}
((ReviewHolder) viewHolder).phone_user_name.setText(shared_status);
etc..etc..
但是,在recyclerView
中的所有單元格中, phone_user_name
textbox
始終為"Just U"
,顏色為#DA850B
,而實際上,根據Activity1
的pub_or_priv
值,該pub_or_priv
在某些單元格中應該為Private
和Public
。
怎樣才能將pub_or_priv
正確插入adapter
?
看起來您在活動/適配器中使用的是一個值,因此所有行當然都顯示相同的值。
在適配器中,使用Review實例中與當前單元格對應的值:
@Override
public void onBindViewHolder(final RecyclerView.ViewHolder viewHolder, final int position) {
Review review = the_reviews.get(position);
int pubOrPriv = review.getPublicOrPrivate();
//shared_status will be Just U, Private or Public
String shared_status = "";
if (pubOrPriv == 0) {
//change colour depending on value
((ReviewHolder) viewHolder).phone_user_name.setTextColor(Color.parseColor("#DA850B"));
shared_status = "Just U";
}
if (pubOrPriv == 1) {
((ReviewHolder) viewHolder).phone_user_name.setTextColor(Color.parseColor("#0A7FDA"));
shared_status = "Private";
}
if (pubOrPriv == 2) {
((ReviewHolder) viewHolder).phone_user_name.setTextColor(Color.parseColor("#2AB40E"));
shared_status = "Public";
}
//.............
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.