Alex
Alex

Reputation: 113

Android - Getting text for the selected item from ListView

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

Answers (1)

Kurdish Droid
Kurdish Droid

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

Related Questions