Saturday, 24 November 2018

When I am in last Item In CardStackView?

I have RecyclerView(CardStackView) With 60 items.

Now After finish All Items .. I have Blank Page .. I do not want to Show The blank Page if all items finished ... I want to Intent to Another Activity You can see The blank Page Here

when I implement CardStackListener I Added Those Method too Like This .I want to When All card Answered Intent To ResultActivity...Like This After 60th question I want InstedOf Blank Page Intent To ResultActivity


 //Card Method
  @Override
  public void onCardDragging(Direction direction, float ratio) {
    Log.d("CardStackView", "onCardDragging: d = " + direction.name() + ", r = " + ratio);
  }

  @Override
  public void onCardSwiped(Direction direction) {
    Log.d("CardStackView", "onCardSwiped: p = " + manager.getTopPosition() + ", d = " + direction);
    if (manager.getTopPosition() == mbtiQuestAdapter.getItemCount() - 5) {
      mbtiQuestAdapter.addQuestion(questions);
      mbtiQuestAdapter.notifyDataSetChanged();
    }
    position++;
    Intent intent = new Intent(MbtiQuestionActivity.this, ResultActivity.class);
    intent.putExtra(RESULT, result);
    Log.i(TAG, "onResultClick: " + result);
    startActivity(intent);


  }

  @Override
  public void onCardRewound() {
    Log.d("CardStackView", "onCardRewound: " + manager.getTopPosition());
  }

  @Override
  public void onCardCanceled() {
    Log.d("CardStackView", "onCardCanceled:" + manager.getTopPosition());
  }


Adapter.java

public class MbtiQuestAdapter extends RecyclerView.Adapter<MbtiQuestAdapter.MbtiQuestViewHolder> {


  private List<Question> questionList;
  private LayoutInflater layoutInflater;
  private final OnItemClickListener listener;


  private static final String TAG = "MbtiQuestAdapter";


  public interface OnItemClickListener {
    void onItemClick(int position, char value);
  }


  public MbtiQuestAdapter(List<Question> questionList, OnItemClickListener listener) {
    this.questionList = questionList;
    this.listener = listener;
  }


  @NonNull
  @Override
  public MbtiQuestViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
    if (layoutInflater == null) {
      layoutInflater = LayoutInflater.from(parent.getContext());

    }

    MbtiItemRowBinding binding = DataBindingUtil.inflate(layoutInflater,
      R.layout.mbti_item_row, parent, false);


    return new MbtiQuestViewHolder(binding);
  }


  @Override
  public void onBindViewHolder(@NonNull final MbtiQuestViewHolder holder, final int position) {

    final Question question = questionList.get(position);


    holder.binding.txtQuesNum.setText(String.valueOf(position + 1));

    holder.binding.txtQuesTitle.setText(question.getQuestion());
    holder.binding.firstQues.setText(question.getAnswers().get(0).getAnswer());
    holder.binding.secondQues.setText(question.getAnswers().get(1).getAnswer());


    holder.binding.firstQues.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View v) {
        listener.onItemClick(position, question.getAnswers().get(0).getValue());

      }
    });


    holder.binding.secondQues.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View v) {
        listener.onItemClick(position, question.getAnswers().get(1).getValue());
      }
    });


    holder.binding.setQuestion(question);
  }


  @Override
  public int getItemCount() {
    Log.i(TAG, " List Size : " + questionList.size());
    return questionList.size();
  }


  class MbtiQuestViewHolder extends RecyclerView.ViewHolder {

    private MbtiItemRowBinding binding;

    MbtiQuestViewHolder(MbtiItemRowBinding binding) {
      super(binding.getRoot());
      this.binding = binding;

    }
  }

  public void addQuestion(List<Question> questions) {
    this.questionList.addAll(questions);
  }
}


SetUp CardStackView In Activity

 //Swipe RecyclerView with CardStackView
    cardStackView = binding.cardStackView;
    manager = new CardStackLayoutManager(this);
    mbtiQuestAdapter = new MbtiQuestAdapter(questions, this);
    cardStackView.setLayoutManager(manager);
    cardStackView.setAdapter(mbtiQuestAdapter);


I want to Say If The items Finished Do SomeThing (Show Dialog or etc.)

Thank Guys



from When I am in last Item In CardStackView?

No comments:

Post a Comment