カスタムリストビューと新しいarrayadapterを作成せずに、リストビューの行の高さを設定しようとしています。高さをLayoutParams.WRAP_CONTENTに設定しています。私はこれをlogcatで取得します
02-19 20:42:25.721: E/AndroidRuntime(6936): at android.widget.AbsListView.obtainView(AbsListView.java:2465) 02-19 20:42:25.721:
E/AndroidRuntime(6936): at android.widget.ListView.measureHeightOfChildren(ListView.java:1250)
これが私のビューコードです:
public View getView(int position, View convertView, ViewGroup parent) {
System.gc();
TextView tv = new TextView(mContext.getApplicationContext());
LayoutInflater inflater = getLayoutInflater();
LayoutParams params = tv.getLayoutParams();
String id = null;
mRowHeight = LayoutParams.WRAP_CONTENT;
if (params == null) {
music_column_index = musiccursor
.getColumnIndexOrThrow(MediaStore.Audio.Media.DISPLAY_NAME);
musiccursor.moveToPosition(position);
id = musiccursor.getString(music_column_index);
music_column_index = musiccursor
.getColumnIndexOrThrow(MediaStore.Audio.Media.SIZE);
musiccursor.moveToPosition(position);
id += musiccursor.getString(music_column_index);
tv.setText(id);
params.height = mRowHeight;
} else
tv = (TextView) convertView;
return tv;