SetOnClickListener не работает в DialogFragment - PullRequest
1 голос
/ 04 мая 2020

Я пытаюсь получить индекс, когда щелкаю в представлении списка внутри DialogFragment, но ничего не получаю ... Я не знаю, почему ...

Это OnCreatedDialog где у меня есть setOnClickListener:

Это мой адаптер, я пытаюсь поставить setOnClickListener здесь:

public class AdapterListviewChangeStartingKarateka extends ArrayAdapter {


    Context context;
    int item_Layaut;
    ArrayList<Karateka> data;
    ApiUtils apiUtils;

    public AdapterListviewChangeStartingKarateka(Context context, int item_Layaut, ArrayList<Karateka> data) {
        super(context, item_Layaut,data);
        this.context = context;
        this.item_Layaut = item_Layaut;
        this.data = data;
    }

    @NonNull
    @Override
    public View getView(final int position, @Nullable View convertView, @NonNull ViewGroup parent) {
        if (convertView == null) {
            LayoutInflater layoutInflater = LayoutInflater.from(context);
            convertView = layoutInflater.inflate(item_Layaut, parent, false);
        }
        String image = data.get(position).getPhoto_karateka();

        ImageView elementImage = convertView.findViewById(R.id.change_starting_picture_karateka);
        if(image!= null || !!!image.isEmpty() ) {
            Picasso.get().load(apiUtils.BASE_URL_PICTURE + image).fit().into(elementImage);
        }else{ elementImage.setImageResource(R.drawable.default_image); }

        Button buttonToChange= convertView.findViewById(R.id.item_button_to_change);

        ListView list = convertView.findViewById(R.id.starting_listview);
        list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                Log.d("indexListview", String.valueOf(i));
            }
        });
}

1 Ответ

0 голосов
/ 04 мая 2020

Попробуйте реализовать адаптер ListView и определить прослушиватель в методе getView() адаптера.

Вы должны установить прослушиватель для каждого элемента представления.

viewKarateka.setOnClickListener(new View.OnClickListener() {
   public void onClick(final View v) {
      Log.d("indexListview", String.valueOf(i));
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...