2016-06-24 24 views
1

Ich verwende FastAdapter in meiner App und ich möchte Anzeigen nach dem Zufallsprinzip zwischen RecyclerView platzieren. Für Ex - wie eine Anzeige nach 3 RecyclerView Artikel dann nach 4, dann nach 2 und so weiter und so fort. DieseWie platziert man Anzeigen zufällig zwischen RecyclerView?

ist, wie ich bin mit FastAdapter:

FastItemAdapter<HRequest> fastItemAdapter = new FastItemAdapter<>(); 
fastItemAdapter.withSelectable(true); 

RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recycler_view); 
recyclerView.setHasFixedSize(true); 
recyclerView.setLayoutManager(linearLayoutManager); 
recyclerView.setItemAnimator(new DefaultItemAnimator()); 

HRequest hRequest = new HRequest(imageUID); 
fastItemAdapter.add(helpRequest); 
recyclerView.setAdapter(fastItemAdapter); 

Hier HRequest.java Code der Datei:

public class HRequest extends AbstractItem<HRequest, HRequest.ViewHolder> { 

     public String imageURL; 

     public HRequest() { 

     } 

     public HRequest(String imageURL) { 
      this.imageURL = imageURL; 
     } 

     // Fast Adapter methods 
     @Override 
     public int getType() { 
      return R.id.recycler_view; 
     } 
     @Override 
     public int getLayoutRes() { 
      return R.layout.h_request_list_row; 
     } 
     @Override 
     public void bindView(ViewHolder holder) { 
      super.bindView(holder); 

      holder.imageURL.setText(imageURL); 

     } 
     // Manually create the ViewHolder class 
     protected static class ViewHolder extends RecyclerView.ViewHolder { 

      TextView imageURL; 

      public ViewHolder(View itemView) { 
       super(itemView); 
       imageURL = (TextView)itemView.findViewById(R.id.imageURL); 

if (!imageURL.getText().toString().isEmpty()) { 

if (imageURL.getText().toString().startsWith("https://firebasestorage.googleapis.com/") || imageURL.getText().toString().startsWith("content://")) { 
        Picasso.with(itemView.getContext()) 
          .load(imageURL.getText().toString()) 
          .into(homelessImage); 
       } else { 
        Toast.makeText(itemView.getContext(), "some problem", Toast.LENGTH_SHORT).show(); 
       } 

      } else { 
       Toast.makeText(itemView.getContext(), "no imageUID found", Toast.LENGTH_SHORT).show(); 
      } 

      } 
     } 

    } 

Wie kann ich erreichen, was ich will?

+0

Gute Frage, aber es ist nicht nötig, Ihren Titeln 'bitte Details anzeigen 'hinzuzufügen. Halte sie so prägnant und chat-free wie möglich! Vielen Dank. – halfer

Antwort

2

Ihr Code war nicht genug für mich, um das Bild vollständig zu bekommen, aber das ist, was ich gefunden habe. Lass mich wissen, ob das funktioniert oder etwas fehlt.

public class HRequest extends AbstractItem<HRequest, HRequest.ViewHolder> { 
    public static int count = 0; 
    public static int random = 0; 
    public String imageURL; 

    public HRequest() { 

    } 

    public HRequest(String imageURL) { 
     this.imageURL = imageURL; 
     Random rand = new Random(); 
     random = random.nextInt(4); 
    } 

    // Fast Adapter methods 
    @Override 
    public int getType() { 
     return R.id.recycler_view; 
    } 
    @Override 
    public int getLayoutRes() { 
     return R.layout.h_request_list_row; 
    } 
    @Override 
    public void bindView(ViewHolder holder) { 
     super.bindView(holder); 

     holder.imageURL.setText(imageURL); 


if(count >= random){ 

    // Load Your Ad 
    random = random.nextInt(4); // Reset the counter to random integer 
     count = 0; 
    }else{ 
      count++; 
if (!imageURL.getText().toString().isEmpty()) { 

    if(imageURL.getText().toString().startsWith("https://firebasestorage.googleapis.com/") || imageURL.getText().toString().startsWith("content://")) { 
        Picasso.with(itemView.getContext()) 
          .load(imageURL.getText().toString()) 
          .into(homelessImage); 
      } else { 
       Toast.makeText(itemView.getContext(), "some problem", Toast.LENGTH_SHORT).show(); 
      } 

     } else { 
      Toast.makeText(itemView.getContext(), "no imageUID found", Toast.LENGTH_SHORT).show(); 
     } 

     } 

    } 
    // Manually create the ViewHolder class 
    protected static class ViewHolder extends RecyclerView.ViewHolder { 

     TextView imageURL; 

     public ViewHolder(View itemView) { 
      super(itemView); 
      imageURL = (TextView)itemView.findViewById(R.id.imageURL); 

    } 

} 
+0

sollte ich Anzeigen in 'R.layout.h_request_list_row;' oder einer anderen Layoutdatei platzieren? –

+0

können Sie sich das auch anschauen: http://stackoverflow.com/questions/41125004/notification-not-getting-removed-on-clicking-action-button-even-after-providing Bitte? –

+0

hey ... Ich habe eine verwandte Frage: Wie zeigen Sie die Anzeigen nur an der Spitze der Recyclerview? –

Verwandte Themen