2016-04-16 7 views
0

Я хочу, чтобы мой сетка recylerview на кнопку нажмите. как это сделатьКак перетасовать изображение на recyclerview

вот мой код.

public class MainActivity extends AppCompatActivity { 

Toolbar toolbar; 
Context mContext; 
Button suffle; 
List<ImageData> data = new ArrayList<>(); 
Recycle_Adapter adapter = new Recycle_Adapter(mContext, data); 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    toolbar = (Toolbar)findViewById(R.id.app_bar); 
    setSupportActionBar(toolbar); 
    assert getSupportActionBar() != null; 
    getSupportActionBar().setHomeButtonEnabled(true); 
    suffle = (Button)findViewById(R.id.suffle); 

    for(int i =0;i<Glob.imgs.length;i++) { 
     data.add(new ImageData(Glob.imgs[i])); 
    } 

    try { 
     RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recycleGridView); 
     //recyclerView.setLayoutManager(new LinearLayoutManager(this)); 
     recyclerView.setLayoutManager(new StaggeredGridLayoutManager(4, StaggeredGridLayoutManager.VERTICAL)); 
     recyclerView.setHasFixedSize(true); 
     recyclerView.setAdapter(adapter); 


    }catch (NullPointerException e){ 
     e.printStackTrace(); 
    } 

    suffle.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

     } 
    }); 

} 

i used Collections.Shuffle (data); но его не работает, может быть, я не знаю, как использовать, я только что нашел и попытаюсь использовать, у меня нет подсказки, помогите мне ..

ответ

1

Просто используйте Collections.shuffle(list) перетасовать список и поставки, которые перемешиваются список обратно к адаптеру, как показано ниже

suffle.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 

     Collections.shuffle(data); 

     adapter = new Recycle_Adapter(mContext, data); 
     recyclerView.swapAdapter(data, false); 
    } 
}); 
+0

его работы .. спасибо. . Теперь я хочу применить анимацию тасования. как это сделать. –

1

В onClick для вашей кнопки сделайте перетасовку. Затем вызовите adapter.notifyItemRangeChanged(), как это:

suffle.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     // Create this method in your adapter class and inside it call 
     // shuffle on the list of items 
     adapter.shuffleList(); 
     // Then notify the adapter that changes have been made to the list 
     adapter.notifyItemRangeChanged(0, adapter.getItemCount()); 
    } 
});