RecyclerView 어댑터 (DataBinding)에서 startActivity를 호출하는 방법

사용자 8536938

RecyclerView(rvPredictionIndex)항목이 포함되어 있습니다 ImageView, EditText그리고 Button때, Button텍스트 내부를 클릭 할 때 EditText서버에 업로드 될 때 ImageView클릭, 새가 Activity호출됩니다 및 해당 항목의 위치를 사용하여 새로운 활동에 전달됩니다 Intent().

나는 사용하고 DataBinding있으므로 View()여기에서 사용되지 않습니다 (또는 View()내가 모르는 다른 사용 방법 ).

RecyclerView 어댑터 코드입니다 ....

public class PredictionItemAdapter extends RecyclerView.Adapter<PredictionItemAdapter.MyViewHolder> {
    private List<PredictionItems> mPredictionItemsList;
    private Context mContext;
    private int predictionId;
    private String etAnswer;

    public class MyViewHolder extends RecyclerView.ViewHolder {
        //        ImageView ivPredictionImage;
//        CustomTextView txtPredictionQuestion;
        PredictionItemBinding predictionItemBinding;

        public MyViewHolder(PredictionItemBinding predictionItemBinding) {
            super(predictionItemBinding.getRoot());
            this.predictionItemBinding = predictionItemBinding;
//            ivPredictionImage = (ImageView) itemView.findViewById(R.id.ivPredictionImage);
//            txtPredictionQuestion = (CustomTextView) itemView.findViewById(R.id.txtPredictionQuestion);
        }
    }

    public PredictionItemAdapter(Context context, List<PredictionItems> mPredictionItemsList) {
        this.mPredictionItemsList = mPredictionItemsList;
        this.mContext = context;

    }

    @Override
    public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
//        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.prediction_item, parent, false);
//        return new MyViewHolder(view);
        PredictionItemBinding predictionItemBinding = DataBindingUtil.inflate(LayoutInflater.from(parent.getContext()),
                R.layout.prediction_item, parent, false);
        return new MyViewHolder(predictionItemBinding);
    }

    @Override
    public void onBindViewHolder(final MyViewHolder holder, final int position) {
//        PredictionItems predictionItems = mPredictionItemsList.get(position);
//        Picasso.with(mContext).load(predictionItems.getImage()).into(holder.ivPredictionImage);
//        holder.txtPredictionQuestion.setText(predictionItems.getQuestion());
        final PredictionItems predictionItems = mPredictionItemsList.get(position);

        PredictionViewModel predictionViewModel = new PredictionViewModel(predictionItems);
        predictionViewModel.addOnPropertyChangedCallback(new Observable.OnPropertyChangedCallback() {
            @Override
            public void onPropertyChanged(Observable sender, int propertyId) {
                if (propertyId == 1) {
                    etAnswer = holder.predictionItemBinding.editText.getText().toString();
                    predictionId = mPredictionItemsList.get(position).getId();
                    if (etAnswer.equals("")) {
                        Utility.showToastShort(mContext, "Please input answer");
                    } else {
                        callUpdatePredictionAnswerApi(predictionId, etAnswer);
//                    Toast.makeText(mContext, "submjit of " + holder.getAdapterPosition), Toast.LENGTH_SHORT).show();
                    }
                }
                else if (propertyId == 2){
                    //Here i want to start activity and pass data with intent
                }
            }
        });
        holder.predictionItemBinding.setPredictionVM(predictionViewModel);
    }

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

recyclerView의 ItemClick에서 이미 새 활동을 열었지만 입력을 위해 EditText를 클릭하려고하면 새 활동으로 리디렉션되므로 ImageView 클릭에서 새 활동을 시작하고 싶습니다.

여기 내 RecyclerViewItem 클릭 ...

private void rvPredictionIndexClick() {
        rvPredictionIndex.addOnItemTouchListener(new RecyclerTouchListener(mContext, rvPredictionIndex, new RecyclerTouchListener.ClickListener() {
            @Override
            public void onClick(View view, int position) {
                String preId = mPredictionItemsList.get(position).getId().toString();
                Intent i = new Intent(mContext, PredictionInfoActivity.class);
                String posi = ((String.valueOf(position)));
                i.putExtra("predictionId", posi);
                startActivity(i);
            }

            @Override
            public void onLongClick(View view, int position) {

            }
        }));
    }
라비 바니 야

수업 생성 DataBindingAdapter및 붙여 넣기

  @BindingAdapter("android:onClick")
    public static void setOnClickListener(View view, final Runnable runnable) {
        view.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                runnable.run();
            }
        });
    }

ViewModel수업에 가서 붙여 넣는 것보다

   public void onSubmitClicked() {
        Log.e("onButtonSubmit", "onButtonSubmit");
        notifyPropertyChanged(1);
    }

    public void onImageClicked() {
        Log.e("onImageClicked", "onImageClicked");
        notifyPropertyChanged(2);
    }

item.xml파일 로 가서 전화 하는 것보다

android:onClick="@{predictionVM::onSubmitClicked}"

버튼에

android:onClick="@{predictionVM.onImageClicked}

당신의 imaggView에서 당신 ItemAdapterClass과 내부 로 이동하는 것보다onCreateViewHolder

  predictionViewModel.addOnPropertyChangedCallback(new Observable.OnPropertyChangedCallback() {
            @Override
            public void onPropertyChanged(Observable sender, int propertyId) {
                if (propertyId == 1) {
                 //do your stuff
               }
               else if (propertyId == 2) {
                   // do your stuff

                }

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

다른 어댑터에서 작업 등 어댑터를 호출하는 방법

분류에서Dev

android kotlin의 recyclerview 어댑터에서 arraylist를 얻는 방법

분류에서Dev

어댑터의 OnClickListener에 startActivity를 추가하는 방법은 무엇입니까?

분류에서Dev

RecyclerView를 사용하여 어댑터에서 OnClickListener를 설정하여 조각 내부에 표시하는 방법

분류에서Dev

Firebase 리사이클 러 어댑터에서 recyclerview ItemClickListener ()를 구현하는 방법은 무엇입니까?

분류에서Dev

어댑터에서 조각을 호출하는 방법

분류에서Dev

recyclerview 어댑터에서 선택된 cardview의 배경을 변경하는 방법

분류에서Dev

사용자 지정 기본 어댑터에서 함수를 호출하는 방법

분류에서Dev

리사이클 러 어댑터에서 onclicklistener를 포함하는 대화 상자 호출 방법

분류에서Dev

ViewHolder (RecyclerView)에서 어댑터의 메서드를 호출 할 수 없습니다.

분류에서Dev

MobileFirst Platform 7.0의 JS 어댑터 프로 시저에서 Java 어댑터 프로 시저를 호출하는 방법은 무엇입니까?

분류에서Dev

ListView의 어댑터에서 ImageView를 분리하는 방법

분류에서Dev

MobileFirst 7.0에서 SOAP 어댑터를 디버그하는 방법

분류에서Dev

커서 어댑터를 사용하는 RecyclerView에서 두 개 이상의 카드를 만드는 방법은 무엇입니까?

분류에서Dev

활동에서 ListView 어댑터의 getItem (i)을 호출하는 방법

분류에서Dev

업데이트 어댑터에 runOnUiThread를 사용하는 방법

분류에서Dev

앱간에 어댑터를 재사용하는 방법

분류에서Dev

목록 어댑터에 AlertDialog를 표시하는 방법

분류에서Dev

Worklight 어댑터에서 비밀번호로 보호 된 URL을 호출 할 때 사용자 신임 정보를 입력하는 방법은 무엇입니까?

분류에서Dev

RecyclerView 어댑터를 만들어 모든 행에서 배열 목록의 3 개 항목을 가져 오는 방법

분류에서Dev

Firebase-배열에 요소가 있고 빈 RecyclerView를 반환하기 전에 어댑터가 호출 됨

분류에서Dev

RecyclerView.ViewHolder에서 DialogFragment를 호출하는 방법 (인터페이스 구현 포함)

분류에서Dev

RecyclerView 용 어댑터에서 동적으로 생성 된 ImageView에 대해 Onclick을 설정하는 방법

분류에서Dev

Android 어댑터에서 Json 데이터를 전달하는 방법

분류에서Dev

제네릭을 사용하는 다른 유형의 개체에 대해 하나의 RecyclerView 어댑터를 사용하는 방법은 무엇입니까?

분류에서Dev

RecyclerView 어댑터의 onBindViewHolder 내에서 overridePendingTransition을 선언하는 방법은 무엇입니까?

분류에서Dev

패킷이 방화벽에서 tun + 어댑터를 통과하는 방법

분류에서Dev

MVVM / retrofit Architecture에서 DataBinding을 사용하여 RecyclerView 행에서 데이터를 설정하는 방법은 무엇입니까?

분류에서Dev

NGRX; 어댑터 데이터에 필터를 적용하는 방법

Related 관련 기사

  1. 1

    다른 어댑터에서 작업 등 어댑터를 호출하는 방법

  2. 2

    android kotlin의 recyclerview 어댑터에서 arraylist를 얻는 방법

  3. 3

    어댑터의 OnClickListener에 startActivity를 추가하는 방법은 무엇입니까?

  4. 4

    RecyclerView를 사용하여 어댑터에서 OnClickListener를 설정하여 조각 내부에 표시하는 방법

  5. 5

    Firebase 리사이클 러 어댑터에서 recyclerview ItemClickListener ()를 구현하는 방법은 무엇입니까?

  6. 6

    어댑터에서 조각을 호출하는 방법

  7. 7

    recyclerview 어댑터에서 선택된 cardview의 배경을 변경하는 방법

  8. 8

    사용자 지정 기본 어댑터에서 함수를 호출하는 방법

  9. 9

    리사이클 러 어댑터에서 onclicklistener를 포함하는 대화 상자 호출 방법

  10. 10

    ViewHolder (RecyclerView)에서 어댑터의 메서드를 호출 할 수 없습니다.

  11. 11

    MobileFirst Platform 7.0의 JS 어댑터 프로 시저에서 Java 어댑터 프로 시저를 호출하는 방법은 무엇입니까?

  12. 12

    ListView의 어댑터에서 ImageView를 분리하는 방법

  13. 13

    MobileFirst 7.0에서 SOAP 어댑터를 디버그하는 방법

  14. 14

    커서 어댑터를 사용하는 RecyclerView에서 두 개 이상의 카드를 만드는 방법은 무엇입니까?

  15. 15

    활동에서 ListView 어댑터의 getItem (i)을 호출하는 방법

  16. 16

    업데이트 어댑터에 runOnUiThread를 사용하는 방법

  17. 17

    앱간에 어댑터를 재사용하는 방법

  18. 18

    목록 어댑터에 AlertDialog를 표시하는 방법

  19. 19

    Worklight 어댑터에서 비밀번호로 보호 된 URL을 호출 할 때 사용자 신임 정보를 입력하는 방법은 무엇입니까?

  20. 20

    RecyclerView 어댑터를 만들어 모든 행에서 배열 목록의 3 개 항목을 가져 오는 방법

  21. 21

    Firebase-배열에 요소가 있고 빈 RecyclerView를 반환하기 전에 어댑터가 호출 됨

  22. 22

    RecyclerView.ViewHolder에서 DialogFragment를 호출하는 방법 (인터페이스 구현 포함)

  23. 23

    RecyclerView 용 어댑터에서 동적으로 생성 된 ImageView에 대해 Onclick을 설정하는 방법

  24. 24

    Android 어댑터에서 Json 데이터를 전달하는 방법

  25. 25

    제네릭을 사용하는 다른 유형의 개체에 대해 하나의 RecyclerView 어댑터를 사용하는 방법은 무엇입니까?

  26. 26

    RecyclerView 어댑터의 onBindViewHolder 내에서 overridePendingTransition을 선언하는 방법은 무엇입니까?

  27. 27

    패킷이 방화벽에서 tun + 어댑터를 통과하는 방법

  28. 28

    MVVM / retrofit Architecture에서 DataBinding을 사용하여 RecyclerView 행에서 데이터를 설정하는 방법은 무엇입니까?

  29. 29

    NGRX; 어댑터 데이터에 필터를 적용하는 방법

뜨겁다태그

보관