2012-12-24 2 views
1

나는 사용자 지정 배열 어댑터가 있고 ListView에 이미지보기를 갖고 싶습니다. 2.2 및 2.3.X 장치에서만 발생합니다. 내가 목록을로드 할 때ListView with a image

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

    <ImageView 
     android:id="@+id/place_category_icon" 
     android:layout_width="48dp" 
     android:layout_height="48dp" 
     android:layout_alignParentLeft="true" 
     android:layout_marginRight="8dp" 
     android:background="@drawable/photo1" 
     android:scaleType="centerCrop" > 
    </ImageView> 

    <TextView 
     android:id="@+id/place_name" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_centerVertical="true" 
     android:layout_toLeftOf="@+id/list_timestamp" 
     android:ellipsize="end" 
     android:singleLine="true" 
     android:text="Harsha Mallikarjun Vantagudi" 
     android:textStyle="bold" > 
    </TextView> 

    <TextView 
     android:id="@+id/place_distance" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentRight="true" 
     android:layout_centerVertical="true" 
     android:padding="6dp" 
     android:paddingLeft="30dp" 
     android:singleLine="true" 
     android:text="2 hours" > 
    </TextView> 

</LinearLayout> 

을 다음과 같이

내 행 템플릿입니다. 이미지가 표시되지만 텍스트를 스크롤하려고하면 텍스트가 사라지고 다시 사라집니다. 내가 잘못, 내가 인플레이터 :)를 사용하고 있었다

public class PlacesListAdapter extends ArrayAdapter<Place> implements 
     Filterable { 
    public Context context; 
    private List<Place> places; 

    public PlacesListAdapter(Context context, List<Place> places) { 
     super(context, R.layout.list_item_place, places); 
     this.context = context; 
     this.places = places; 

    } 

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

     View view = convertView; 

     if (view == null) { 
      LayoutInflater inflater; 
      inflater = LayoutInflater.from(getContext()); 
      view = inflater.inflate(R.layout.list_item_place, null); 
     } 

     Place place = places.get(position); 

     if (place != null) { 

      TextView place_title = (TextView) view 
        .findViewById(R.id.place_name); 
      TextView place_distance = (TextView) view 
        .findViewById(R.id.place_distance); 

      if (place_title != null) { 
       place_title.setText(place.getPlaceName()); 
      } 

      if (place_distance != null) { 
       place_distance.setText(place.getPlaceDistance()); 
      } 
     } 

     return view; 
    } 

} 

TEST APK on 2.X device

+0

좋은 스크린 샷이지만 어떤 코드는 무엇입니까? –

+0

@ K-ballo가 추가되었습니다. 이미지를 제거하면 잘 작동합니다. –

+0

내가 어떻게하는지 모르겠다.하지만 getView에서 인플레터를 사용하지 않고 아무런 문제가 없다. 어쩌면해볼 가치가있다. –

답변

1

enter image description here

enter image description here

어댑터

확실히이 코드는 안드로이드 2.3에서 일하고

및 이미지와 텍스트가 있으며 스크롤 할 수 있습니다.

@Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     View rowView = inflater.inflate(R.layout.list_row, parent, false); 

     ImageView imgThumb = (ImageView) rowView.findViewById(R.id.thumbnail); 
     TextView tvDate = (TextView) rowView.findViewById(R.id.tvDate); 
     TextView tvHeadline = (TextView) rowView.findViewById(R.id.tvHeadline); 
     // Button btDetail = (Button)rowView.findViewById(R.id.btDetail); 

     NewsHeadline newsHeadline = values.get(position); 
     if (newsHeadline != null) { 
      imgThumb.setImageBitmap(newsHeadline.getThumbnail()); 
      DateFormat df = SimpleDateFormat.getDateInstance(); 
      tvDate.setText(df.format(newsHeadline.getDate())); 
      tvHeadline.setText(newsHeadline.getTitle()); 
     } 
     return rowView; 
    } 

호출/설정 코드 :

protected void onPostExecute(String result) { 
     Log.d("ReloadTask", "Done"); 

     newsListActivity.getListView().setAdapter(new    NewsDataArrayAdapter(newsListActivity, MyApplication.getListNewsHeadline())); 

및 레이아웃 :

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="fill_parent" 
    android:layout_height="86dp" 
    android:background="#363C4A" 
    android:orientation="horizontal" 
    > 

    <!-- ListRow Left sied Thumbnail image --> 

    <ImageView 
     android:id="@+id/thumbnail" 
     android:layout_width="80dip" 
     android:layout_height="67dip" 
     android:layout_alignLeft="@+id/lineBottom" 
     android:layout_centerVertical="true" 
     android:layout_marginRight="5dip" /> 

    <!-- Date --> 

    <TextView 
     android:id="@+id/tvDate" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignTop="@+id/thumbnail" 
     android:layout_marginLeft="10dp" 
     android:layout_toRightOf="@+id/thumbnail" 
     android:text="12.07.2012" 
     android:textColor="#747474" 
     android:textSize="11dip" 
     android:textStyle="normal" 
     android:typeface="sans" /> 

    <!-- headline --> 

    <TextView 
     android:id="@+id/tvHeadline" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_below="@id/tvDate" 
     android:layout_marginLeft="10dp" 
     android:layout_marginTop="1dip" 
     android:layout_toLeftOf="@+id/tvDetail" 
     android:layout_toRightOf="@+id/thumbnail" 
     android:text="Just gona stand there and ... is multilined?" 
     android:textColor="#d4d4d4" 
     android:textSize="14dip" 
     android:textStyle="bold" /> 

    <!-- Rightend Arrow --> 

    <TextView 
     android:id="@+id/tvDetail" 
     android:layout_width="13dp" 
     android:layout_height="19dp" 
     android:layout_alignParentRight="true" 
     android:layout_centerVertical="true" 
     android:background="@drawable/arrow" /> 

    <!-- Bottom Arrow --> 

    <ImageView 
     android:id="@+id/lineBottom" 
     android:layout_width="288dip" 
     android:layout_height="3dip" 
     android:layout_alignParentBottom="true" 
     android:layout_centerHorizontal="true" 
     android:src="@drawable/line" /> 

</RelativeLayout> 
+0

괜찮아요 : d는 레이아웃의 문제처럼 보입니다 : ( –

1

그럼 내가 응답 조금 늦게 아마 나는 알고있다,하지만 난이 추가로 고정 TextView.

android:background="@android:color/transparent" 
+0

고맙습니다 .... : D –