1

カスタムアレイアダプタがあり、ListViewに画像ビューが必要です。これは、2.2および2.3.Xデバイスでのみ発生します。

私の行テンプレートは次のとおりです

<?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;
    }

}

2.XデバイスでAPKをテストする

4

2 に答える 2

1

私は間違っていました、私はインフレータを使用しています:)

このコードは確かにAndroid2.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>
于 2012-12-24T19:38:11.400 に答える
1

おそらく応答が少し遅れていることはわかっていますが、これをTextViewに追加して修正しました。

android:background="@android:color/transparent"
于 2014-06-18T14:30:53.690 に答える