OnItemClick listener not working in Custom ListView
-
10-03-2021 - |
Question
I have created a custom list view and created my own adapter class I have inflated the view with below code:
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
LayoutInflater layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View streamrowView = layoutInflater.inflate(R.layout.streamrow, parent,false);
initUI(streamrowView);
tvUserMsg.setText(values[position].Message);
tvPostDate.setText(values[position].postDate);
return streamrowView;
}
private void initUI(View streamrowView) {
tvUserMsg = (TextView) streamrowView.findViewById(R.id.tvUserMsg);
tvPostDate = (TextView) streamrowView.findViewById(R.id.tvPostDate);
}
List view is working perfectly, but the set onItemClick listener event is not working
listView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> data, View v, int pos,
long arg3) {
Toast.makeText(getApplicationContext, "list clicked" ,1).show();
System.out.println("*****List clicked!!!");
}
});
is there any other approach for onItemClick listener for custom rows.
Solution
public View getView(final int position, View convertView,
ViewGroup parent) {
final View vi ;//= convertView;
ViewHolder holder;
// if (convertView == null) {
vi = inflater.inflate(R.layout.row_mbc_language, null);
holder = new ViewHolder();
holder.txtViewLangItem = (TextView) vi
.findViewById(R.id.txtViewLangItem);
holder.imgViewSelectedLang = (ImageView) vi
.findViewById(R.id.imgViewSelectedLang);
vi.setTag(holder);
vi.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
BibleActivity.selectedLangCode = MBCLanguageListAdapter.this.resultsLang[position].languageCode;
MainActivity.SavePreferences("langCode",
BibleActivity.selectedLangCode,
MBCLanguageListAdapter.this.activity);
notifyDataSetChanged();
}
});
holder.txtViewLangItem.setText(this.resultsLang[position].language);
if (this.resultsLang[position].languageCode
.equals(BibleActivity.selectedLangCode)) {
holder.imgViewSelectedLang.setVisibility(View.VISIBLE);
}
return vi;
}
OTHER TIPS
public View getView(final int position, View convertView, ViewGroup parent) {
convertView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {}
}
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow