2013-12-22 4 views
0

화면에 다양한 정보를 표시하기 위해 수정 된 ListView를 만들었습니다. 이제는 사용자가 클릭 한보기에서 개별 동작을 수행하여 보이지 않게합니다.Android, mofified ListView와 함께 문제가 발생했습니다.

나는 뭔가를 시도했지만 제대로 작동하지 않는 것 같습니다. 그것은 단지 1 대신에 4 개의보기 각각을 보이지 않게합니다. 누군가 나를 도울 수 있습니까?

public class affichageListViewAdapter extends BaseAdapter { 
    public void actionC(){ 
    ListListView.get(0).test(); 
    } 
    // some more code ... 
} 
public class affichageListView extends LinearLayout { 
    // some more code ... 
    public void test(){ 
    textViewTest.setVisibility(GONE); 
    } 
} 

편집 : 나는 내 코드

public class listeVideo extends ListFragment{ 
    private affichageListViewAdapter adapter; 
    @Override 
     public void onListItemClick(ListView l, View v, int position, long id) { 
    super.onListItemClick(l, v, position, id); 

    adapter.test(); 

} 
} 

편집 2의 일부를 잊었 :

public class affichageListView extends LinearLayout { 
private TextView mTextView; 

public affichageListView(Context context, AttributeSet attrs, int defStyle) { 
    super(context, attrs, defStyle); 
    init(); 
} 

public affichageListView(Context context, AttributeSet attrs) { 
    super(context, attrs); 
    init(); 
} 

public affichageListView(Context context) { 
    super(context); 
    init(); 
} 

private void init() { 
    inflate(getContext(), R.layout.affichafe_list_view, this); 
    mTextView = (TextView) findViewById(R.id.textViewTitre); 
} 

}

: 나는 당신의 방법

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 

    if (convertView == null) { 
     affichageListeVue = new affichageListView(mContext); 
    } 
    else { 
     affichageListeVue = (affichageListView) convertView; 
    } 
    affichageListeVue.ajouter(getItem(position)); 
    affichageListeVue.getSize(size); 

    affichageListeVue.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      v.setVisibility(View.GONE);//I use this method just for if the click works 
     } 
    }); 

    return affichageListeVue; 
} 

EDIT 3 사용 방법

+0

'affichageListeView' 생성자를 게시하십시오. 그리고 원래의 질문에서는'affichageListeView'라고 이름 붙이고, 편집 2에서는'affichageListeVue'라고합니다. 그것들은 같은 대상에 대한 참조가되어야합니까? – NitroNbg

+0

여기 있습니다, affichageListeVue는 객체의 이름이고 affichageListeView는 클래스 이름입니다 –

+0

저는이 문제가 convertView에 의한 것이라고 생각합니다. –

답변

0

그래서, ListView 항목을 채우는 레이아웃에 대해 OnClickListener (View v) 메소드를 설정해야합니다. 당신이 XML 리소스를 사용하여 항목을 팽창하는 경우 , 당신의 XML 항목 레이아웃에이 속성을 추가

android:onClick="MyMethod" 

그런 다음 MainActivity 내부 MyMethod(View v)를 선언 다음과 같이

public void MyMethod(View v) { 
    TextView textViewTest = (TextView) v.findViewById(R.id.lookupId); 
    textViewTest.setVisibility(View.GONE); 
} 

참고하십시오 R.id.lookupId로 변경 숨기고 싶은 레이아웃 내의 텍스트 뷰 아이템의 ID. 나는 이것이 아주 짧은 설명이라는 것을 이해하고, 당신이 원하는대로 의견을 묻는다. 건배 :)

EDIT : ListView를 동적으로 작성하는 경우, getView(...) 메서드 내에서 OnItemClickListener를 설정하고 동일한보기를 반환해야한다는 것을 잊었습니다. 예 :

@Override 
public View getView(int position, View ConvertView, ViewGroup parent) { 
    View tempView = ConvertView; 
    if(tempView == null) { 
     //Add all the values and items that you want to the tempView 
     //You are checking if the tempView is null to recycle old ListView items 
    } 
    tempView.setOnClickListner(new OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      //Implement here a method to be fired when user clicks an item 
     } 
    }); 
+0

덕분에 코드에 동일한 문제가있는 것 같습니다. 단지 1 대신에 4 개의 뷰를 모두 보이지 않게합니다. –

+0

내 메서드 구현 방법으로 게시물을 편집 할 수 있습니까? onListItemClick()은 onClickListener()를 ListView 어댑터의 항목을 채우는보기에 추가해야합니다. – NitroNbg

+0

여기가 내 위의 게시물을 참조하십시오. –

관련 문제