2015-02-09 97 views
0

我花了几个小时研究它,尝试了不同的方法,但最接近的是获取列表中第一项的文本 - 而不是选定的项目。Android - 从列表视图中获取所选项目的文本

这是我的getView方法:

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; 
} 

这里是我的onClickListener从活动:

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(); 

       } 
      } 
    ); 

任何想法,请?

+1

在发表问题之前,有成千上万的问题像这样。 – 2015-02-09 11:59:31

+0

是的,正如我上面提到的,我一直在研究它,看了很多类似的问题和答案,但没有一个适合我。 – Alex 2015-02-09 12:01:24

+0

TextView textView =(TextView)listView.findViewById(R.id.sweetName); - > TextView textView =(TextView)view.findViewById(R.id.sweetName); – nbaroz 2015-02-09 12:01:34

回答

2
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(); 

       } 
      } 
    ); 
相关问题