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

칼레드

ToastMessage에서보기 위해 항목의 ID에 액세스 할 수 없거나 데이터베이스에 저장할 수도 없습니다 (Room DataBase 사용). 시도했지만 메시지가 나타나지 않습니다. 데이터베이스 저장소에 사용할 참조 ID가 필요하고 프로세스를 완료합니다. 쇼핑 카트 보관

itemAdapter.java

public class itemAdapter extends RecyclerView.Adapter<itemAdapter.ItemViewHolder> {
    private Context context;
    private ArrayList<Items> arrayList;
    private AdapterView.OnItemClickListener listener;
    public itemAdapter(Context context, ArrayList<Items> arrayList) {
        this.context = context;
        this.arrayList = arrayList;
    }

    @NonNull
    @Override
    public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View v = LayoutInflater.from(context).inflate(R.layout.item, parent, false);
        return new ItemViewHolder(v);
    }


    @Override
    public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) {
        holder.name.setText(arrayList.get(position).getItemName());
        holder.desc.setText(arrayList.get(position).getItemDesc());
        holder.price.setText(arrayList.get(position).getItemPrice());
        holder.add.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(context,arrayList.get(position).getItemIid(),Toast.LENGTH_SHORT);
            }
        });
        holder.name.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(context,arrayList.get(position).getItemPrice(),Toast.LENGTH_SHORT);
            }
        });

    }

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

    class ItemViewHolder extends RecyclerView.ViewHolder {

        TextView name, desc, price;
        ImageView remove, add;

        public ItemViewHolder(@NonNull View itemView) {
            super(itemView);
            name = itemView.findViewById(R.id.tvName);
            desc = itemView.findViewById(R.id.tvDesc);
            price = itemView.findViewById(R.id.tvPrice);
            remove = itemView.findViewById(R.id.btnDelete);
            add = itemView.findViewById(R.id.btnAdd);
        }
    }
   
}

MealsFragment.java

Public class MealsFragment extends Fragment {

public MealsFragment() {
    // Required empty public constructor
}

RecyclerView recyclerView;
itemAdapter adapter;


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);


}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    return inflater.inflate(R.layout.fragment_meals, container, false);
}

@Override
public void onViewCreated( View view, Bundle savedInstanceState) {
    ArrayList<Items> ItemsList = (ArrayList<Items>) RoomDatabaseSingleton.getInstance(getContext().getApplicationContext())
            .getAppDatabase()
            .getDao()
            .getItems("meals");
    recyclerView = view.findViewById(R.id.rvMeals);
    RecyclerView.LayoutManager manager = new LinearLayoutManager(
            getContext(), RecyclerView.VERTICAL, false);
    recyclerView.setLayoutManager(manager);
    adapter = new itemAdapter(getContext(), ItemsList);
    recyclerView.setAdapter(adapter);

}

}

도끼

대신 다음을 시도하십시오.

       holder.add.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(context,arrayList.get(position).getItemIid(),Toast.LENGTH_SHORT).show();
            }
        });
        holder.name.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(context,arrayList.get(position).getItemPrice(),Toast.LENGTH_SHORT).show();
            }
        });

정적 메소드 makeTextToast생성하는데 사용되는 Toast물체와 show()온 방법 Toast오브젝트는 토스트를 표시하는 데 사용

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관