ListView
アプリケーション内のファイル/フォルダー階層を表示するために使用する があります。と を含むカスタム レイアウトを使用していImageView
ますTextView
。ImageView
テキストに応じてイメージを変更したいのは、TextView
ether フォルダーまたはファイルです。カスタムを使用せずにこれを行うことはできますArrayAdapter
か、またはカスタムを使用する必要がある場合、ランタイムでアイコンArrayAdapter
を変更するにはどうすればよいImageView
ですか?
質問する
3242 次
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
この例を試してみてください。問題が解決する場合があります。
于 2013-09-11T07:10:07.213 に答える