1

ImageView と TextView を含む xml ファイルを介して、LayoutInflater を使用してリストビューに似たものを作成しました。

リストビューを実際にスタイルする方法がわからないため、これを非常に非正統的な方法で行ったようです(理想的には、同じインターフェイスに配置する他のコンテンツがあるため、サイズを定義したい)

LinearLayout 自体をスタイリングし、LinearLayout を親 LinearLayout 内に配置して、「list」という名前のファイル内の ListView を含め、ListActivity を拡張するクラス内で setContentView を定義しようとしました。

コントロールがUI全体であるのではなく、他のコントロールと同じように、カスタムリストビューコントロールを LinearLayout に含めることができれば幸いです。

public class ImageActivity extends ArrayAdapter<PlaceStore> {

    private final Context context;
    private final List<PlaceStore> places;

    public ImageActivity(Context context, List<PlaceStore> places) {
        super(context, R.layout.image_text_row, places);
        this.context = context;
        this.places = places;
    }

    @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.image_text_row, parent, false);

        TextView textView = (TextView) rowView.findViewById(R.id.label);
        ImageView imageView = (ImageView) rowView.findViewById(R.id.logo);
        textView.setText(places.get(position).getName());

        return rowView;
    }


public class FavouriteActivity extends ListActivity{


    public void onCreate(Bundle savedInstanceState) {

         super.onCreate(savedInstanceState);

         setContentView(R.layout.favourite);

         FavouriteData data = new FavouriteData(this);

         List<PlaceStore> pS = data.returnFileData();

         setListAdapter(new ImageActivity(this, pS));

    }

R.layout.image_text_row

<?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:padding="5dp" android:background="@drawable/background_type" >


    <ImageView
        android:id="@+id/logo"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:layout_marginLeft="5dp"
        android:layout_marginRight="20dp"
        android:layout_marginTop="5dp"
        android:src="@drawable/androidmarker" >
    </ImageView>

    <TextView
        android:id="@+id/label"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@+id/label"
        android:textSize="20sp" >
    </TextView>

    </LinearLayout>
4

3 に答える 3

2

これは非常に優れたチュートリアルであり、探しているものを正確に示しています

カスタム ArrayAdapter を使用した Android ListView 項目のカスタマイズ

上記のチュートリアルの出力は次のようになります。

Android カスタム リストビュー

これは、あなたの仕事を成し遂げるのに役立つことは間違いありません。

ありがとう :)。

于 2012-07-22T10:55:04.400 に答える
1

以下のチュートリアルを試してみてください。要件に役立ちます

カスタム ListViewこれ

ビデオ - youtubeビデオ

それが役に立てば幸い。

于 2012-07-22T10:25:45.720 に答える
1

ListActivity は必要ないと思います。このチュートリアルをお勧めします:

ListView と CacheView

于 2012-07-22T10:32:54.220 に答える