私はフラグメントを使用していますが、ダイアログを使用してカスタムリストビューを作成したので、リストビューでアイテムをクリックしたかったのです。これは私が以下のようにしたときに何の反応も出さない。 誰かを確認してください。リストビューonitemclickは、アンドロイドのフラグメント内のダイアログボックスでは機能しません
iv_fav_list.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
dialog = new Dialog(getActivity());
dialog.setContentView(R.layout.dialog_fav_country_list);
lv_custom_list_fav_con = (ListView) dialog.findViewById(R.id.list_fav_country);
CFLA = new CustomFavCountryListAdapter(countryList, CountryActivityFragment.this.getActivity());
lv_custom_list_fav_con.setAdapter(CFLA);
dialog.show();
lv_custom_list_fav_con.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
Toast.makeText(CountryActivityFragment.this.getActivity(), "test", Toast.LENGTH_LONG).show();
}
});
}
});
アダプタクラスは、アダプタのインターフェイス
public interface OnDialogListClickListener {
void onItemClick(Country item);
}
アダプタコンストラクタを介してパラメータとしてこのインタフェースを合格とにgetView
方法で膨張ビューのsetOnClickListener
として設定
ArrayList<Country> mCountryList;
Context mContext;
int position;
Country cnt;
OnDialogListClickListener mlistener;
public interface OnDialogListClickListener {
void onItemClick(int position);
}
public CustomFavCountryListAdapter(ArrayList<Country> countryList, Context context, OnDialogListClickListener listener) {
this.mCountryList = countryList;
this.mContext = context;
this.mlistener = listener;
}
@Override
public int getCount() {
return mCountryList.size();
}
@Override
public Object getItem(int i) {
return mCountryList.get(i);
}
@Override
public long getItemId(int i) {
return mCountryList.get(i).getCountryID();
}
@Override
public View getView(int i, View view, final ViewGroup viewGroup) {
position = i;
LayoutInflater inflater = (LayoutInflater) mContext
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View convertView = inflater.inflate(R.layout.custom_fav_country_list, viewGroup,
false);
TextView tv_fav_con_name = (TextView) convertView.findViewById(R.id.tv_custom_fav_country_name);
tv_fav_con_name.setText(mCountryList.get(i).getCountryName());
convertView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mlistener.onItemClick(position);
}
});
convertView.setTag(mCountryList.get(i).getCountryName());
return convertView;
}
}
クリックリスナーでコードをデバッグしましたか? –
いいえ、これはそこにも応答していません。 – jacks