Существует немного шаблона, используемого при отображении ListView или GridView. Учитывая XML-файл и мой первый показанный метод, каким будет мой второй метод? Как это происходит, я получаю исключение, что RelativeLayout не может быть перенесено в ImageView на эту строку второго показанного метода: ImageView v = (ImageView) gridView.getChildAt(i);
Я знаю, что мой gridView - это куча relativeLayouts, но не уверен, как получить доступ к их чертежам.Метод OnPause для GridView ListActivity - Android
Вот myLayout.XML:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<ImageView
android:id="@+id/icon"
android:layout_width="200dp"
android:layout_height="200dp"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:padding="8dp"
android:scaleType="fitCenter" />
</RelativeLayout>
ImageAdapter.getView()
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
ImageHelper ih = new ImageHelper();
if (convertView == null) {
convertView = mInflater.inflate(R.layout.mylayout, null);
holder = new ViewHolder();
holder.icon = (ImageView) convertView.findViewById(R.id.icon);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.icon.setImageBitmap(ih.decodeSampledBitmapFromImagePath(mList.get(position), 150, 150));
return convertView;
}
ViewGridView.OnPause()
@Override
protected void onPause() {
GridView gridView = (GridView) findViewById(R.id.gridviewViewOutfits);
int count = gridView.getCount();
for (int i = 0; i < count; i++) {
ImageView v = (ImageView) gridView.getChildAt(i);
if (v != null) {
if (v.getDrawable() != null) v.getDrawable().setCallback(null);
}
}
super.onPause();
}
Благодаря
Спасибо, я уверен, что это правильно, поскольку исключение ушло, но теперь я получаю исключение нулевого указателя в той же строке. Я закончил удаление onPause и OnDestroy из-за того, что код, устанавливающий обратный вызов на null, вызывал nullPointerexceptions – user3164083
GridView содержит представления, отображаемые только на экране. Я думаю, что вы пытаетесь получить доступ к представлениям, которые не существуют. Http://developer.android.com/reference/android/view/ViewGroup.html#getChildAt(int) –