2013-03-12 6 views
8

Listview에 문제가 있습니다. Listview에는 이미지 뷰와 텍스트 뷰로 구성된 목록 항목이 있습니다. Textview에는 클릭 가능한 링크가 포함되어 있습니다. LinkMovementMethod를 textviews로 설정하면 listitems가 onclick 이벤트를 수신하지 않습니다. 나는 아직도 (권리 솔루션 =를 찾을 수없는 사람이 그것을 해결하거나을 listitem 감사 내부의 클릭 가능한 링크와 텍스트 뷰를 사용하는 예제를 제공하는 방법을 explane 수 여기에 어댑터를 텍스트 뷰 생성이다.?.Textview`s LinkMovementMethod가 listitem 터치 이벤트를 차단합니다.

TextView text = (TextView) ((LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE)) 
         .inflate(R.layout.post_content_text, null); 
SpannableString sString = new SpannableString(d.getText()); 
//I have my own class UrlSpan that contain fields startPosition, endPosition and urlLink 
for (UrlSpan us : ((TextData) d).getUrls()) 
       { 
        URLSpan urlSpan = new URLSpan(us.getUrl()); 
        sString.setSpan(urlSpan, us.getStart(), us.getEnd(), SpannableString.SPAN_INCLUSIVE_INCLUSIVE); 
       } 
text.setText(sString); 
text.setMovementMethod(LinkMovementMethod.getInstance()); 
view.addView(text); 

및 목록 항목 입니다 :

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:visibility="visible" > 

    <LinearLayout 
     style="?PostListRow" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_margin="10dp" 
     android:orientation="vertical" 
     android:padding="10dp" > 

     <LinearLayout 
      android:layout_width="fill_parent" 
      android:layout_height="65dp" 
      android:orientation="horizontal" > 

      <ImageView 
       android:id="@+id/user_image" 
       android:layout_width="45dp" 
       android:layout_height="45dp" 
       android:layout_margin="3dp" 
       android:clickable="true" 
       android:src="@drawable/ic_no_photo" /> 

      <LinearLayout 
       android:layout_width="fill_parent" 
       android:layout_height="55dp" 
       android:layout_margin="0dp" 
       android:orientation="vertical" > 

       <TextView 
        android:id="@+id/user_title" 
        android:layout_width="fill_parent" 
        android:layout_height="0dp" 
        android:layout_weight="1" 
        android:clickable="true" 
        android:textSize="@dimen/title_in_list" /> 

       <TextView 
        android:id="@+id/post_datetime" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:layout_marginBottom="5dp" 
        android:layout_marginTop="5dp" 
        android:textSize="@dimen/text_size_small" /> 
      </LinearLayout> 

      <TextView 
       android:id="@+id/post_number" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="right" 
       android:text="123" /> 
     </LinearLayout> 
<!-- it is a view where textview with links is to be added to --> 
     <LinearLayout 
      android:id="@+id/post_data" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:orientation="vertical" 
      android:weightSum="6" > 
     </LinearLayout> 

     <TextView 
      android:id="@+id/post_view" 
      style="?PostText" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:text="TextView" 
      android:visibility="gone" /> 

     <LinearLayout 
      android:id="@+id/topic_edit_view" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:orientation="horizontal" > 
     </LinearLayout> 
    </LinearLayout> 

</LinearLayout> 
+0

코드를 입력하십시오. 사용자 지정 어댑터가있는 경우 clicklistner와 함께 어댑터 코드를 입력하십시오. –

+1

나는 귀하의 게시물을 발견 했으므로 이곳에서 해결 된 것으로 믿습니다. https://stackoverflow.com/questions/8558732/listview-textview-with- linkmovementmethod-makes-list-item-unclickable – m3hughes

답변

0

시도는 문서에서 목록보기

이 속성 android:descendantFocusability="beforeDescendants" 을 추가 :

View에 초점을 맞출 때 ViewGroup과 그 하위 항목 간의 관계를 정의합니다. 그것은 당신이 listview에서 버튼이나 edittext 및 기타와 같은 일부 활성 뷰를 가질 때 descendantFocusability를 정의해야한다고 생각합니다.

+0

이 속성을 추가하는 것에 대해 설명 할 수 있습니다. – deW1

+0

에서 가져온 뷰는 포커스를 가져올 뷰를 찾을 때 ViewGroup과 그 자손 사이의 관계를 정의합니다. ListView에서 버튼이나 edittext 등의 활성 뷰가있는 경우 descendantFocusability를 정의해야합니다. – greenfrvr

+0

ListView에서 SpannableString 및 LinkMovementMethod를 사용할 때 하위 클래스의 포커스 가능성 차단이 작동하지 않습니다. 아마도 당신이 대답을 받아 들일 수있는 접근 방식을 시도 할 수 ... http://stackoverflow.com/questions/8558732/listview-textview-with-linkmovementmethod-makes-list-item-unclickable – Dallas187