2013-08-31 3 views
0

ListView의 각 행에 단추를 넣었으므로 이제 해당 단추의 위치 (행 번호)를 가져 와서 일부 항목이있을 때 TOAST를 사용하여 표시하려고합니다 행이 아닌 해당 버튼을 누르십시오.ListView에서 단추의 수/위치 가져 오기

 ListView.setOnItemClickListener(new OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> list, View view, int position, long id) { 
      Log.i(TAG, "onListItemClick: " + position); 

      Toast.makeText(MainActivity.this, "" + position, Toast.LENGTH_SHORT).show();    

      } 
    }); 

나는 안드로이드를위한 개발할하는 방법 learnign 그리고 난이 아닌 해요 :

나는 심지어 토스트를 표시 할 수 없습니다, 그렇게하는 방법을 모른다, 여기 내 코드입니다 영어 원어민, 도움을 주셔서 감사합니다!

+0

[this] (http://stackoverflow.com/questions/1709166/android-listview-elements-with-multiple-clickable-buttons?rq=1) 스레드를 살펴볼 수 있습니다 .. –

답변

0

귀하의 Adaper에서 특정 버튼에 대해 setOnclickListner을 작성하십시오. 여기에서 위치를 알 수 있습니다. /이있을 때마다

public View getView(final int position, View convertView, ViewGroup parent) { 
    // TODO Auto-generated method stub 
    // TODO Auto-generated method stub 
    final InviteOddViewHolder holderodd; 

    int odd_bg = R.drawable.listing_odd; 
    int even_bg = R.drawable.listing_even; 

    if (convertView == null) { 
     convertView = mInflater.inflate(R.layout.bookmark_list_item, null); 
     holderodd = new InviteOddViewHolder(); 
     holderodd.button = (Button) convertView 
       .findViewById(R.id.button); 

     holderodd.button.setOnClickListener(new OnClickListener() {   

     @Override 
     public void onClick(View v) 
     { 
     Toast.makeText(this, "Posit", Toast.LENGTH_LONG).show(); 
     }  
     }); 
     convertView.setTag(holderodd); 

    } else { 
     holderodd = (InviteOddViewHolder) convertView.getTag(); 

    } 
    return convertView; 
} 

class InviteOddViewHolder { 
    public Button button; 

} 
1

최단 방법으로 귀하의 정보를 list.getPositionForView(view);

0
@Override 
public void onListItemClick(ListView l, View v, int position, long id) { 
    // TODO Auto-generated method stub 

    String selection = l.getItemAtPosition(position).toString(); 
    Toast.makeText(this.getActivity(), selection, Toast.LENGTH_LONG).show(); 
} 
+0

시도해보십시오. 코드를 답으로 덤핑하지 않고 왜 코드가 무엇이며 이유는 무엇인지 설명하려고 시도하십시오. 관련 코딩 경험이없는 사람들에게는 귀하의 코드가 명확하지 않을 수 있습니다. – Frits

+0

작동 여부와 관계없이 여기에 게시하기 전에 답을 확인하십시오. 개발자가 시간을 낭비하지 말고 코드가 없으면 시도하십시오. –

+0

괜찮습니다. 나는 아무도 시간 낭비하지 않을 것이다. – Mohammed

0

, 버튼 또는 ListView 요소에 존재하는 ImageButtons 같은 클릭 가능한 요소는, 그들은 클릭 이벤트의 제어를 가져 가라. ListView에 클릭 이벤트를 수락 할 기회가 주어지지 않습니다.

여기에서 onListItemClick(...)은 쓸모가 없습니다.

간단히 말하면 어댑터 클래스에 단추로 setOnClickListener을 작성하고 ListView의 선택한 위치를 얻으십시오.

관련 문제