J'ai créé un adaptateur personnalisé en étendant ArrayAdapter. J'ai essayé d'utiliser setOnClickListener à l'intérieur car setItemOnClickListener ne fonctionne pas pour moi. Voici mon get Code adaptateur personnalisé:Erreur getItem() sur OnClickListener à l'intérieur de CustomAdapter
public class ChatRoomAdapter extends ArrayAdapter<ChatRoom> {
Context context;
ChatRoom chatRoom;
public ChatRoomAdapter(Context context, ArrayList<ChatRoom> chatRoomArrayList){
super(context,0,chatRoomArrayList);
this.context = context;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
convertView= LayoutInflater.from(context).inflate(R.layout.chat_room_model,parent,false);
chatRoom = getItem(position);
System.out.println(chatRoom.chatRoomId);
final TextView chatroomName = (TextView)convertView.findViewById(R.id.chatroom_name);
final TextView chatroomMessage = (TextView)convertView.findViewById(R.id.chatroom_message);
chatroomMessage.setText(Splash_Screen.localDatabase.getLatestChatMessage(chatRoom.chatRoomId).message);
LinearLayout chatroomLayout = (LinearLayout)convertView.findViewById(R.id.chatroom);
chatroomLayout.setOnClickListener(openChat);
chatroomName.setText(chatRoom.chatRoomName);
return convertView;
}
private View.OnClickListener openChat = new View.OnClickListener() {
@Override
public void onClick(View v) {
Bundle bundle = new Bundle();
bundle.putString("chatroom_id",chatRoom.chatRoomId);
FragmentTransaction fragmentTransaction = ((FragmentActivity)getContext()).getSupportFragmentManager().beginTransaction();
ChatFragment chatFragment = new ChatFragment();
chatFragment.setArguments(bundle);
fragmentTransaction.replace(R.id.view_container,chatFragment);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
}
};
Lorsque j'ai cliqué sur le premier élément, il me renvoie le deuxième objet Item. Quel pourrait être le problème? Merci.
dans '' utiliser onClick' AdapterView # getPositionForView (Voir vue) ' – pskink
@pskink peut vous montrer moi comment le faire? – VincentTheonardo
quels problèmes avez-vous avec l'appel d'une méthode qui prend juste un paramètre? – pskink