2012-10-20 6 views
-1

나는 ListView입니다. 나는 그것을 성공적으로 채울 수있다. ListView 그러나 지금은 무엇이 필요 한가? 사용자가 ListItem을 길게 누르면, 내가 보이지 않게하는 버튼을 보이게해야한다. ListView.ListView 안쪽에서보기 항목에 액세스하는 방법?

여기 제가 시도한 스 니펫입니다.

mItemListView.setOnItemLongClickListener (새 OnItemLongClickListener() {

 @Override 
     public boolean onItemLongClick(AdapterView<?> adapterview, View arg1, 
       int arg2, long arg3) { 
      LinearLayout view=(LinearLayout) mItemListView.getChildAt(arg2); 
      view.getChildAt(0).setVisibility(View.VISIBLE); 
      return false; 
     } 
    }); 

내 어댑터는 onItemLongClick(AdapterView<?> adapterview, View arg1, int arg2, long arg3) 메서드에 전달 BaseAdapter

+1

onItemLongClick의 arg1은 클릭 한 항목이므로이 arg1보기에서 findViewById를 사용하여 단추를 다시 얻으십시오. –

+1

@Satya 감사합니다. –

답변

2

를 사용하여보기를 확장합니다. 예를 들어

mItemListView.setOnItemLongClickListener(new OnItemLongClickListener() { 

    @Override 
    public boolean onItemLongClick(AdapterView<?> adapterview, View arg1, 
      int arg2, long arg3) { 
      arg1.setVisibility(View.VISIBLE); 
      return false; 
    } 
}); 
+0

감사합니다 친구가 당신의 대답에서 아이디어를 얻었고 제 문제는 더 이상 없습니다 ;-) –

0

내가 가정 이 버튼은 각 목록 항목에 채워지는 선형 레이아웃의 레이아웃의 일부입니까?이 경우 012를 사용하십시오.을 클릭하고 버튼보기를 열고 을 VISIBLE로 설정합니다.

0

목록을 다시 그리려면 어댑터에서 notifyDataSetChanged()를 호출해야합니다. 그러나 어댑터의 getView 메소드 내에서 버튼을 보이지 않게 설정하는 경우에는 보이지 않게 되돌릴 수 있습니다.

각 버튼의 가시성 상태를 유지하고 해당 상태를 전환하고 별도의 배열을 사용하여 그리기 할 때 버튼 상태를 설정해야합니다.

관련 문제