изображение пустое при смене ориентации? - PullRequest
0 голосов
/ 23 марта 2011

Я хочу спросить, почему мой вид сетки не может показать изображение после изменения ориентации

Я установил onConfigurationChange () и onRetainNonCofigurationInstance (), но не решил мою проблему.это мой код:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.category_layout);

    data = getLastNonConfigurationInstance();

    setUpView();


}

private void setUpView() {
    gridview = (GridView) findViewById(R.id.gridlayout);
    if(data == null){
        imageGridViewAdapter = new ImageGridViewAdapter(this, category, image_category);
    }
    else{
        imageGridViewAdapter = (ImageGridViewAdapter) data;
    }
    gridview.setAdapter(imageGridViewAdapter);

    gridview.setOnItemClickListener(new OnItemClickListener() {

        public void onItemClick(AdapterView<?> arg0, View arg1,
                final int arg2, long arg3) {

            if (subCategory[arg2].length > 1) {
                AlertDialog.Builder builder = new AlertDialog.Builder(
                        CategoryActivity.this);
                builder.setTitle(category[arg2]);
                builder.setItems(subCategory[arg2],
                        new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog,
                                    int item) {
                                linkNewsCategory(arg2, item);
                            }
                        });
                builder.show();
            } else {
                linkNewsCategory(arg2, 0);
            }

        }

    });
}

@Override
public void onConfigurationChanged(Configuration newConfig) {
      super.onConfigurationChanged(newConfig);
      setUpView();
}



@Override
public ImageGridViewAdapter onRetainNonConfigurationInstance() {
    ImageGridViewAdapter a = new ImageGridViewAdapter(this, category, image_category);
    return a;
}

Это ошибка в gridview?

1 Ответ

0 голосов
/ 23 марта 2011

наконец-то у меня есть решение для поиска .. у меня неправильный адаптер при установке изображения и текста ..

это мой старый getView ():

public View getView(int position, View convertView, ViewGroup parent) {
    ViewHolder holder;
    if (convertView == null) {
        v = mInflater.inflate(R.layout.category, null);
        holder = new ViewHolder();
        holder.category_title = (TextView) v.findViewById(R.id.text);
        holder.category_image = (ImageView) v.findViewById(R.id.image);
        v.setTag(holder);
    } else{
        holder = (ViewHolder) v.getTag();
    }

    holder.category_title.setText(data[position]);
    holder.category_image.setImageResource(image[position]);

    return v;
}

я меняю с этим:

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

    v = convertView;
    if(convertView == null){
        LayoutInflater li = activity.getLayoutInflater();
        v = li.inflate(R.layout.category, null);

        category_title = (TextView) v.findViewById(R.id.text);
        category_title.setText(data[position]);

        category_image = (ImageView) v.findViewById(R.id.image);
        category_image.setImageResource(image[position]);

    }
    return v;
}

пока что это может решить мою проблему ..

спасибо

...