2013-12-22 60 views
0

我具有由適配器的Android - 從GridView的/適配器卸下物品

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

適配器的數據集填充一個的GridView被basicly從不同勢活動按壓之後的混洗表

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); 
} 

按鈕我想刪除一個項目

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

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

      finish(); 

pos是項目在中的位置與finish()我回到GridView活動。

但問題是,沒有任何變化!除去後,我用烤麪包檢查了位置上的物品,與之前一樣。

請幫忙! 問候ueen

+0

你的方法是不正確的。使用startActivityForResult返回要從適配器中刪除的所需項目。你可以從這裏得到一個主意http://stackoverflow.com/a/10407371/786337 – Tarun

+0

好吧,試用 - 現在的應用程序崩潰... – ueen

+0

我想我做了一個miskte與額外,固定它,它什麼都不做再次...以及一切免除刪除工程 – ueen

回答

0

搜查角落找尋了一下,發現那裏有一些瘋狂的只讀問題: 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

你問列表中刪除類型整數的對象,這不是正確的,因爲你使用的ArrayList。嘗試以下操作刪除您的對象

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

此致。

+0

但與「新的ImageAdapter」我創建一個新的適配器! – ueen

+0

確定將列表切換到另一個類別,以便通過設置新的適配器(您的建議)不會混淆,但仍然沒有任何東西被刪除.... – ueen

+0

檢查編輯的答案。你通過一個* Integer *對象來刪除錯誤。希望它解決了這個問題。 –