2013-12-22 4 views
0

У меня есть GridView, заполненного адаптеруAndroid - Удаление элемента из GridView/адаптера

GridView gridview = (GridView) findViewById(R.id.gridview); 
gridview.setAdapter(new ImageAdapter(this)); 

набор данных из-адаптера Основном перетасованного Список

static List<Integer> mTlist = Arrays.asList(
    R.drawable.ac_pre, R.drawable.acc_pre, 
    R.drawable.acd_pre, R.drawable.ach_pre, 
    R.drawable.acs_pre, R.drawable.ad_pre, 
    R.drawable.ah_pre, R.drawable.as_pre, 
    R.drawable.dc_pre, R.drawable.dd_pre, 
    R.drawable.dh_pre, R.drawable.ds_pre, 
    R.drawable.fc_pre, R.drawable.fd_pre, 
    R.drawable.fh_pre, R.drawable.fs_pre, 
    R.drawable.jc_pre, R.drawable.jd_pre, 
    R.drawable.jh_pre, R.drawable.js_pre, 
    R.drawable.kc_pre, R.drawable.kd_pre, 
    R.drawable.kh_pre, R.drawable.ks_pre, 
    R.drawable.nc_pre, R.drawable.nd_pre, 
    R.drawable.nh_pre, R.drawable.ns_pre, 
    R.drawable.qc_pre, R.drawable.qd_pre, 
    R.drawable.qh_pre, R.drawable.qs_pre, 
    R.drawable.sec_pre, R.drawable.sed_pre, 
    R.drawable.seh_pre, R.drawable.ses_pre, 
    R.drawable.sic_pre, R.drawable.sid_pre, 
    R.drawable.sih_pre, R.drawable.sis_pre, 
    R.drawable.vc_pre, R.drawable.vd_pre, 
    R.drawable.vh_pre, R.drawable.vs_pre, 
    R.drawable.xc_pre, R.drawable.xd_pre, 
    R.drawable.xh_pre, R.drawable.xs_pre, 
    R.drawable.zc_pre, R.drawable.zd_pre, 
    R.drawable.zh_pre, R.drawable.zs_pre 
    ); 

private void mischen() { 
    Collections.shuffle(mTlist); 
} 

от diffrent активности после нажатия кнопка Я хочу удалить товар

  ImageAdapter imad = new ImageAdapter(getBaseContext()); 
      Bundle extras = getIntent().getExtras(); 
      Integer pos = extras.getInt("draw"); 

      ImageAdapter.mTlist.remove(pos); 
      imad.notifyDataSetChanged(); 

      finish(); 

pos позиция предмета в List (mTlist); с finish() Я возвращаюсь к GridView-Activity.

Но проблема в том, что ничего не меняется! Я проверил с тостом элемент на позиции после удаления, и он был таким же, как и раньше.

Пожалуйста, помогите! Приветствия ueen

+0

Ваш подход не является правильным. Используйте startActivityForResult для возврата нужного элемента, который нужно удалить из адаптера. Вы можете получить эту идею отсюда http://stackoverflow.com/a/10407371/786337 – Tarun

+0

ОК, опробовали - теперь приложение вылетает ... – ueen

+0

Думаю, я сделал miskte с дополнениями, исправил его и ничего не сделал снова ... ну все, кроме удаленных работ – ueen

ответ

0

Искал Arround немного и узнал Theres некоторые сумасшедшие только для чтения проблемы: Why can't one add/remove items from an ArrayAdapter? я действительно не получить его, но это работает:

 static Integer[] mTlist = { 
     R.drawable.ac_pre, R.drawable.acc_pre, 
     R.drawable.acd_pre, R.drawable.ach_pre, 
     R.drawable.acs_pre, R.drawable.ad_pre, 
     R.drawable.ah_pre, R.drawable.as_pre, 
     R.drawable.dc_pre, R.drawable.dd_pre, 
     R.drawable.dh_pre, R.drawable.ds_pre, 
     R.drawable.fc_pre, R.drawable.fd_pre, 
     R.drawable.fh_pre, R.drawable.fs_pre, 
     R.drawable.jc_pre, R.drawable.jd_pre, 
     R.drawable.jh_pre, R.drawable.js_pre, 
     R.drawable.kc_pre, R.drawable.kd_pre, 
     R.drawable.kh_pre, R.drawable.ks_pre, 
     R.drawable.nc_pre, R.drawable.nd_pre, 
     R.drawable.nh_pre, R.drawable.ns_pre, 
     R.drawable.qc_pre, R.drawable.qd_pre, 
     R.drawable.qh_pre, R.drawable.qs_pre, 
     R.drawable.sec_pre, R.drawable.sed_pre, 
     R.drawable.seh_pre, R.drawable.ses_pre, 
     R.drawable.sic_pre, R.drawable.sid_pre, 
     R.drawable.sih_pre, R.drawable.sis_pre, 
     R.drawable.vc_pre, R.drawable.vd_pre, 
     R.drawable.vh_pre, R.drawable.vs_pre, 
     R.drawable.xc_pre, R.drawable.xd_pre, 
     R.drawable.xh_pre, R.drawable.xs_pre, 
     R.drawable.zc_pre, R.drawable.zd_pre, 
     R.drawable.zh_pre, R.drawable.zs_pre 
}; 

static ArrayList<Integer> lst = new ArrayList<Integer>(); 

private void mischen() { 
    lst.addAll(Arrays.asList(mTlist)); 
    Collections.shuffle(lst); 

} 

«mischen» называется на OnCreate

1

Вы задаете список, чтобы удалить объект типа Integer и это не правильно, потому что ты использовать ArrayList. Вы пытаетесь удалить объект

ImageAdapter.mTlist.remove(pos.intValue()); 

С уважением.

+0

Но с «новым адаптером изображений» я создаю новый адаптер! – ueen

+0

ok переключил список на другой класс, чтобы его не испортили, установив новый адаптер (ваше предложение), но все же ничего не удалялось .... – ueen

+0

проверить отредактированный ответ. вы делаете ошибку, передавая объект * Integer * для удаления. Надеюсь, он решает вопрос. –

Смежные вопросы