Reputation: 113
I've spent several hours researching it, tried different approaches, but the closest I've got is getting the text for the first item in the list - not for the selected one.
This is my getView method:
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
convertView = mInflater.inflate(R.layout.row, null);
holder = new ViewHolder();
holder.sweetName = (TextView) convertView
.findViewById(R.id.sweetName);
holder.sweetPic = (ImageView) convertView
.findViewById(R.id.sweetPic);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.sweetPic.setImageResource(sweetPicResource[position]);
holder.sweetName.setText(sweetsNames[position]);
return convertView;
}
And here is my onClickListener from the activity:
listView.setOnItemClickListener(
new AdapterView.OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> arg0, View view,int position, long arg3) {
String selectedSweet = listView.getItemAtPosition(position).toString();
TextView textView = (TextView) listView.findViewById(R.id.sweetName);
String text = textView.getText().toString();
Toast.makeText(getApplicationContext(), "Selected item: " + text + " - " + position, Toast.LENGTH_SHORT).show();
}
}
);
Any ideas, please?
Upvotes: 0
Views: 10049
Reputation: 279
listView.setOnItemClickListener(
new AdapterView.OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> arg0, View view,int position, long arg3) {
String selectedSweet = listView.getItemAtPosition(position).toString();
TextView textView = (TextView) view.findViewById(R.id.sweetName);
String text = textView.getText().toString();
Toast.makeText(getApplicationContext(), "Selected item: " + text + " - " + position, Toast.LENGTH_SHORT).show();
}
}
);
Upvotes: 3