0

ListViewアプリケーション内のファイル/フォルダー階層を表示するために使用する があります。と を含むカスタム レイアウトを使用していImageViewますTextViewImageViewテキストに応じてイメージを変更したいのは、TextViewether フォルダーまたはファイルです。カスタムを使用せずにこれを行うことはできますArrayAdapterか、またはカスタムを使用する必要がある場合、ランタイムでアイコンArrayAdapterを変更するにはどうすればよいImageViewですか?

4

5 に答える 5

1

リスト内のエントリごとに複数の変数項目が必要な場合はいつでも、カスタム アダプターを使用する必要があります (つまり、この場合、ImageViewと の2 つがありますTextView)。実行時にデータを変更するには、 を呼び出すのが最も簡単ArrayAdapter.notifyDataSetChanged()です。

于 2013-09-11T07:09:48.773 に答える
0

カスタムアダプターの getView 関数で確認し、テキストビューに従ってイメージビューを設定できます。カスタム配列アダプターについては、この例を参照してください。

于 2013-09-11T07:11:01.067 に答える
0

getView()カスタム アダプタ クラスでこのメソッドを使用します。

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

    View newRowView = convertView;
    ViewHolder viewHolder;


    if(newRowView == null)
    {
    LayoutInflater inflator = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    newRowView = inflator.inflate(R.layout.my_list, parent,false); 
    viewHolder = new ViewHolder();

    viewHolder.name = (TextView) newRowView.findViewById(R.id.textInList);

    viewHolder.image = (ImageView) newRowView.findViewById(R.id.iconInList);

    newRowView.setTag(viewHolder);

    }
    else
    {
        viewHolder = (ViewHolder) newRowView.getTag();

    }


    viewHolder.image.setImageDrawable(textImages[position]);

    viewHolder.name.setText(names[position]);

    return newRowView; 
}



static class ViewHolder
{
    TextView name;
    ImageView image;

}

textImages&は、アクティビティnamesクラスからカスタム アダプターに渡した配列です。

これは、最もメモリ効率が高く、高速な方法です。

于 2013-09-11T07:19:16.233 に答える
-1

この例を試してみてください。問題が解決する場合があります。

http://theopentutorials.com/tutorials/android/listview/android-custom-listview-with-image-and-text-using-arrayadapter/

于 2013-09-11T07:10:07.213 に答える