私はrecyclerviewでcardviewを作成して、単一のカードで4つのtextViewを配置して、同じtextViewをクリックしてtextViewのテキストを変更したい。 これをしようとしているときに、他のカードにも適用されます。私は4枚のカードを持っているし、すべてのカードはtextViewのように持っているように、私はFacebookのようなクリックで好きなようにテキストを変更すると、その後スクロールでより多くのデータを読み込みます。しかし、データをロードした後、私はすでにdefault.Hereでも、新たにロードされたカードの上の変更のTextViewが私のアダプタであるようにすることを見ています:私はcardviewのtextViewのテキストを変更したいと思うandroidのビュー
package common;
import android.app.Activity;
import android.app.Dialog;
import android.content.Context;
import android.content.Intent;
import android.content.res.ColorStateList;
import android.graphics.Bitmap;
import android.graphics.Color;
import android.net.Uri;
import android.support.customtabs.CustomTabsIntent;
import android.support.v4.content.ContextCompat;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.view.WindowManager;
import android.view.animation.Animation;
import android.view.animation.LinearInterpolator;
import android.view.animation.RotateAnimation;
import android.widget.AbsListView;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import com.android.volley.toolbox.ImageLoader;
import com.android.volley.toolbox.NetworkImageView;
import com.rate.sky.rate.LoginActivity;
import com.rate.sky.rate.R;
import com.squareup.picasso.Picasso;
import java.util.ArrayList;
import java.util.List;
import static android.R.attr.targetActivity;
import static android.R.attr.width;
import static com.rate.sky.rate.R.attr.height;
import static com.rate.sky.rate.R.attr.title;
/**
* Created by sky on 12/18/2016.
*/
public class CardAdapter extends RecyclerView.Adapter<CardAdapter.ViewHolder> {
UserAuth auth;
private Activity activity;
private ImageLoader imageLoader;
private ArrayList<ListItem> list;
ListItem listItem;
public CardAdapter(Activity activity,ArrayList<ListItem> listVal){
super();
this.activity = activity;
this.list=listVal;
}
public ListItem getItem(int position) {
return list.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext())
.inflate(R.layout.list_card_view, parent, false);
ViewHolder viewHolder = new ViewHolder(v);
return viewHolder;
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
listItem = getItem(position);
try {
imageLoader = CustomVolleyRequest.getInstance(activity.getApplicationContext())
.getImageLoader();
imageLoader.get(listItem.getUrl(), ImageLoader.getImageListener(holder.thumbnail,
android.R.drawable.ic_dialog_alert,
android.R.drawable.ic_dialog_alert));
holder.thumbnail.setImageUrl(listItem.getUrl(), imageLoader);
holder.textViewContent.setText(listItem.getTitle());
}catch (Exception e){
Log.d("Error--",e.toString());
}
}
@Override
public int getItemCount() {
return list.size();
}
class ViewHolder extends RecyclerView.ViewHolder {
public NetworkImageView thumbnail;
public ImageView imageShare, imageComment, imageVote, imageDownvote;
public TextView textViewVoteButton, textViewDownVoteButton, textViewCommentButton, textViewContent;
public TextView txtVoteCount, txtDownVoteCount, txtCommentCount;
public Button rateButton;
CustomTabsIntent customTabsIntent;
CustomTabsIntent.Builder intentBuilder;
public ViewHolder(final View itemView) {
super(itemView);
//Toast.makeText(itemView.getContext(),"Hello",Toast.LENGTH_LONG).show();
auth = new UserAuth(itemView.getContext());
thumbnail = (NetworkImageView) itemView.findViewById(R.id.thumbnail);
rateButton = (Button) itemView.findViewById(R.id.button2);
imageShare = (ImageView) itemView.findViewById(R.id.imageView4);
imageComment = (ImageView) itemView.findViewById(R.id.imageViewComment);
textViewContent = (TextView) itemView.findViewById(R.id.textView);
textViewVoteButton = (TextView) itemView.findViewById(R.id.textView3);
textViewDownVoteButton = (TextView) itemView.findViewById(R.id.textView5);
textViewCommentButton = (TextView) itemView.findViewById(R.id.textView4);
imageVote = (ImageView) itemView.findViewById(R.id.imageViewVote);
imageDownvote = (ImageView) itemView.findViewById(R.id.imageViewDownvote);
txtVoteCount = (TextView) itemView.findViewById(R.id.textViewVoteCount);
txtDownVoteCount = (TextView) itemView.findViewById(R.id.textViewDownvote);
txtCommentCount = (TextView) itemView.findViewById(R.id.textViewComments);
/*Custome chrome tab view*/
intentBuilder = new CustomTabsIntent.Builder();
// Set toolbar(tab) color of your chrome browser
intentBuilder.setToolbarColor(ContextCompat.getColor(itemView.getContext(), R.color.colorPrimary));
customTabsIntent = intentBuilder.build();
/*End*/
/*
Changing the text of textview
*/
imageVote.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (auth.getLoginWith().equals("G") || auth.getLoginWith().equals("F")) {
vote();
} else {
Intent intent = new Intent(v.getContext(), LoginActivity.class);
v.getContext().startActivity(intent);
}
}
});
textViewVoteButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (auth.getLoginWith().equals("G") || auth.getLoginWith().equals("F")) {
vote();
} else {
Intent intent = new Intent(v.getContext(), LoginActivity.class);
v.getContext().startActivity(intent);
}
}
});
}
public void vote() {
RotateAnimation anim = new RotateAnimation(0, 180, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
anim.setInterpolator(new LinearInterpolator());
anim.setDuration(400);
imageVote.startAnimation(anim);
ColorStateList mList = textViewVoteButton.getTextColors();
int color = mList.getDefaultColor();
if (color == Color.BLUE) {
textViewVoteButton.setTextColor(Color.GRAY);
} else {
textViewVoteButton.setTextColor(Color.BLUE);
}
}
}
}
問題はコード内にあります... – Selvin
返信ありがとうございます@セルヴィンしかし、どのような種類の問題がありますことをお勧めできますか? –
問題は、あなたが質問する方法を知らないということです。プログラマは魔法の呪いを使用しないので、コードなしでどこに問題があるのかは分かりません – Selvin