SetOnClickListener 在 DialogFragment 中不起作用
SetOnClickListener doesn't work in DialogFragment
当我在 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));
}
});
}
尝试实现一个 ListView 适配器并在适配器的 getView()
方法中定义您的侦听器。
您应该为每个视图元素设置侦听器。
viewKarateka.setOnClickListener(new View.OnClickListener() {
public void onClick(final View v) {
Log.d("indexListview", String.valueOf(i));
}
}
当我在 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));
}
});
}
尝试实现一个 ListView 适配器并在适配器的 getView()
方法中定义您的侦听器。
您应该为每个视图元素设置侦听器。
viewKarateka.setOnClickListener(new View.OnClickListener() {
public void onClick(final View v) {
Log.d("indexListview", String.valueOf(i));
}
}