SetOnClickListener在DialogFragment中不起作用。

问题描述 投票:0回答:1

我试图在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));
            }
        });
}
java android android-fragments android-listview android-dialog
1个回答
0
投票

试着实现一个ListView适配器,并在适配器中定义你的监听器。getView() 方法,你应该为每个视图元素设置监听器。

你应该为每个视图元素设置监听器。

viewKarateka.setOnClickListener(new View.OnClickListener() {
   public void onClick(final View v) {
      Log.d("indexListview", String.valueOf(i));
   }
}
© www.soinside.com 2019 - 2024. All rights reserved.