标签: recycler-adapter

RecylerView没有动画插入,但它确实动画删除

因此,当我添加一个项目时,它不会为其设置动画,也不会滚动到正确的位置.但是,当我删除某些内容时,它将为对象移除设置动画.

这是添加代码:

@Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if(requestCode == NEWITEMREQUESTCODE && resultCode == Activity.RESULT_OK) {
            // AFTER CREATING A NEW ITEM
            OilChangeableItem oilChangeableItem = data.getParcelableExtra("oil_item");
            // Add the new item and notify the dataset.
            oilChangeableAdapter.notifyItemInserted(0);
            items.add(0, oilChangeableItem);
        } else if (requestCode == EDITITEMRESULTCODE && resultCode == Activity.RESULT_OK) {
            // AFTER EDITING AN ITEM
            OilChangeableItem oilChangeableItem = data.getParcelableExtra("oil_item");
            // Replace the existing item at whatever position it was originally at and notify the …
Run Code Online (Sandbox Code Playgroud)

java android recycler-adapter android-recyclerview

5
推荐指数
1
解决办法
3981
查看次数

无法在RecyclerAdapter中设置方法setResult

在我的应用程序中,我需要启动RecyclerAdapter.class并等待结果,但我不能写行setResult并完成:

public static class MyViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {

    TextView title;
    ImageView icon;

    public MyViewHolder(View itemView) {
        super(itemView);

        title = (TextView) itemView.findViewById(R.id.list_title);
        icon = (ImageView) itemView.findViewById(R.id.list_item);
        icon.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {

        String selectedCountry;




        int country = getPosition();

        String ololo = Integer.toString(country);

        Log.i("WORKS" ,"??????? ?????? ??? ???????" +ololo);
        switch (getPosition()) {
            case 0:
                selectedCountry = "ukr";
                Log.i ("1" ,"" +selectedCountry);
                Intent intent= new Intent();
                intent.putExtra("country", selectedCountry);


            break;
            case 1:
                selectedCountry = "by";
                Log.i ("1" ,"" …
Run Code Online (Sandbox Code Playgroud)

android recycler-adapter

5
推荐指数
1
解决办法
4672
查看次数

在RecyclerView中设置CardView的背景图像会导致程序在滚动时崩溃

我有一个包含CardView列表的RecyclerView,其中包含从服务器提取的信息,有些卡只有背景颜色,但有些卡包含背景图像.如果卡片都只有背景颜色,则RecyclerView会相应地运行(我也可以设置边距和圆角半径).但是,如果任何一张卡包含背景图像,当我尝试向上/向下滚动列表时会发生崩溃(尽管背景图像将加载而没有先前设置的角半径).

这是崩溃日志:

java.lang.ClassCastException: android.graphics.drawable.BitmapDrawable cannot be cast to android.support.v7.widget.RoundRectDrawable
        at android.support.v7.widget.CardViewApi21.setBackgroundColor(CardViewApi21.java:107)
        at android.support.v7.widget.CardView.setCardBackgroundColor(CardView.java:234)
        at co.roverlabs.sdk.ui.CardListAdapter.onBindViewHolder(CardListAdapter.java:88)
        at co.roverlabs.sdk.ui.CardListAdapter.onBindViewHolder(CardListAdapter.java:28)
        at android.support.v7.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:4402)
        at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:3717)
        at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:3609)
        at android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:1859)
        at android.support.v7.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1311)
        at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1274)
        at android.support.v7.widget.LinearLayoutManager.scrollBy(LinearLayoutManager.java:1102)
        at android.support.v7.widget.LinearLayoutManager.scrollVerticallyBy(LinearLayoutManager.java:959)
        at android.support.v7.widget.RecyclerView$ViewFlinger.run(RecyclerView.java:3062)
        at android.view.Choreographer$CallbackRecord.run(Choreographer.java:767)
        at android.view.Choreographer.doCallbacks(Choreographer.java:580)
        at android.view.Choreographer.doFrame(Choreographer.java:549)
        at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:753)
        at android.os.Handler.handleCallback(Handler.java:739)
        at android.os.Handler.dispatchMessage(Handler.java:95)
        at android.os.Looper.loop(Looper.java:135)
        at android.app.ActivityThread.main(ActivityThread.java:5254)
        at java.lang.reflect.Method.invoke(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:372)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
Run Code Online (Sandbox Code Playgroud)

这是我的onBindViewHolder()方法(简化了硬编码值以便于阅读):

public void onBindViewHolder(final CardViewHolder holder, int position) {

    //Set margins
    CardView.LayoutParams cardLayoutParams = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 2000);
    cardLayoutParams.setMargins(20, 20, 20, …
Run Code Online (Sandbox Code Playgroud)

java android android-cardview recycler-adapter android-recyclerview

5
推荐指数
1
解决办法
1万
查看次数

在RycyclerView android中的Facebook原生广告

在Recycler视图android中发现了类似问题的Facebook原生广告,但在与自定义广告的集成方面遇到了一些问题.

对于我试图描述的第一个NativeAdsManager:

  @Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);
    manager = new NativeAdsManager(getActivity(),    "892769720837476_892772047503910", 5);
    manager.setListener(this);
    manager.loadAds();

    nativeAd = new NativeAd(getActivity(), "892769720837476_892772047503910");
    nativeAd.setAdListener(this);
    nativeAd.loadAd();
...
 }
Run Code Online (Sandbox Code Playgroud)

然后我Native ad作为参数包含在RecyclerAdapter构造函数中:

  adapter = new RecyclerAdapter(foodDataList, getActivity(), nativeAd);
Run Code Online (Sandbox Code Playgroud)

在这个Class我也实现AdListenerNativeAdsManager.Listener方法:

@Override
public void onError(Ad ad, AdError adError) {

}

@Override
public void onAdLoaded(Ad ad) {
}

@Override
public void onAdClicked(Ad ad) {

}

@Override
public …
Run Code Online (Sandbox Code Playgroud)

java android facebook-audience-network recycler-adapter android-recyclerview

5
推荐指数
1
解决办法
5721
查看次数

添加新项目时,RecyclerView不会将位置更改为底部元素

我正在创建聊天应用程序并使用RecyclerView.

它是从底部堆叠.

当新消息来临时.然后我们需要手动滚动到那个位置.

它不会像WhatsApp收到新邮件时那样自动改变位置.

早些时候我正在使用ListView,它正常工作.

android recycler-adapter android-recyclerview

5
推荐指数
2
解决办法
2110
查看次数

删除项目后,RecyclerView不会更新

RecyclerView在片段底部有一个水平图像滑块.片段的顶部显示了一些细节.一旦用户点击底部的图像,想法是从图像滑块中删除该图像并在片段中显示其信息.现在信息显示但图像不会被删除RecyclerView.这是我Onclick在最外层布局中编码的内容.我已经尝试了所有可以找到的相关答案,但没有任何效果.它们都在代码中.请让我知道我做错了什么或错过了什么.

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

            if (isFiltering) {
                mItemList.clear();
                mItemList.addAll(mOriginalItemList);
                mItemList.remove(position);// At this point mItemList holds the correct. That is all the images but not the one that was clicked. 

                notifyItemRemoved(position); //solution 1
                notifyItemRangeRemoved(position, getItemCount()); // solution 2
                notifyItemRangeRemoved(0, getItemCount()); // solution 3
                notifyDataSetChanged();//solution 4
            }
        }
    });
Run Code Online (Sandbox Code Playgroud)

适配器的完整代码

public class ImageGallery16X9Adapter<T extends GalleryItem> extends RecyclerView.Adapter<ImageGallery16X9Adapter.GalleryItemViewHolder> {

public enum GalleryMode {
    All_SAME,
    FIRST_DIFFERENT
}

private Context mContext;
private BasePresenter …
Run Code Online (Sandbox Code Playgroud)

android android-adapter android-fragments recycler-adapter android-recyclerview

5
推荐指数
1
解决办法
8552
查看次数

从片段向后按下时,recyclerview为空

在Fragment1上,我具有onClick方法,当我单击按钮时,我得到了项目的recycleview列表。当我单击recycleview中的项目时(使用getPlaceFromItem方法),我转到Fragment2。如果设备是电话,则将Fragment2放在container1中,但是如果设备是tablet(横向),则将Fragment2放入container2中,在container1中Fragment1旁边。

现在,当设备为手机时,当我按返回按钮时,我会得到空的recycleview。

另外,我检查屏幕的方向,以及当设备为手机且我在Fragment2中(即container1中的Fragment2)时,然后在屏幕为横向时,我将放入container1 Fragment1中,并放入Fragment2中的container2中。我的问题是如何从Container1剪切Fragment2并将其放入container2。

主要活动 :

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        if (savedInstanceState == null) {

                View v = findViewById(R.id.container2);
                v.setVisibility(View.GONE);

                getSupportFragmentManager().beginTransaction()
                        .add(R.id.container1, new FragmentA())
                        .commit();

        }

 @Override
public void getPlaceFromItem(Place place) {

    Bundle bundle = new Bundle();
    bundle.putDouble("lat", place.getLat());
    bundle.putDouble("lng", place.getLng());
    Fragment2 fragment2 = new Fragment2();
    fragment2.setArguments(bundle);

    if(getResources().getBoolean(R.bool.isTab)) {

        View v = findViewById(R.id.container2);
        v.setVisibility(View.VISIBLE);

        getSupportFragmentManager().beginTransaction()
       .replace(R.id.container2,fragment2)
       .addToBackStack(null)
       .commit();
    }
    else {


        getSupportFragmentManager().beginTransaction()
        .replace(R.id.container1, fragment2)
        .addToBackStack(null)
        .commit();
    }

}


@Override
public void onBackPressed() {
    if (getFragmentManager().getBackStackEntryCount() > 0) …
Run Code Online (Sandbox Code Playgroud)

android android-fragments recycler-adapter android-recyclerview

5
推荐指数
2
解决办法
2710
查看次数

android.content.res.Resources $ NotFoundException:资源ID#0x7f07007e

我正在尝试在应用程序中实现类似功能,这是回收视图中Viewholder的代码段。

回收站定制适配器

public class PostAdapterViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {

TextView title,user,description,tag,time,designation;
Long date;
ImageView imageView,bookmark,profilepic,sharebutton,like;
RelativeLayout head;
LinearLayout content;
DatabaseReference reference;
Context context;
String name;

public void setContext(Context context) {
    this.context = context;
}

public PostAdapterViewHolder (final View itemView) {
    super(itemView);
    itemView.setOnClickListener(this);
    head = (RelativeLayout) itemView.findViewById(R.id.head);
    content = (LinearLayout) itemView.findViewById(R.id.content);
    imageView =(ImageView)itemView.findViewById(R.id.imageview);
    designation = (TextView) itemView.findViewById(R.id.designation);
    like =(ImageView)itemView.findViewById(R.id.like);
    profilepic = (ImageView) itemView.findViewById(R.id.imageView2);
    bookmark =(ImageView)itemView.findViewById(R.id.bookmark);
    title = (TextView) itemView.findViewById(R.id.title);
    description = (TextView) itemView.findViewById(R.id.description);
    time = (TextView) itemView.findViewById(R.id.date);
    tag = (TextView) …
Run Code Online (Sandbox Code Playgroud)

android android-resources onclicklistener recycler-adapter android-recyclerview

5
推荐指数
2
解决办法
6980
查看次数

RecyclerView onBindViewHolder为一个项目多次调用

我已经使用了RececlerViewViewHolder现在一会儿模式.我正在实施一个自定义Adapter.

我不是在我的代码中搜索特定的错误帮助.

我只是想知道,如果这是正常的,该onBindViewHolder方法被多次调用(对于相同的项目),同时滚动到列表的末尾并向上滚动.在这种情况下onBindViewHolder,再次调用项目0和1(该列表总共包含7个项目)

是否有可能在不通知数据已更改的情况下将此方法调用为AGAIN?

我有点困惑.

亲切的问候,Palm

android listview android-viewholder recycler-adapter android-recyclerview

5
推荐指数
1
解决办法
4837
查看次数

RecyclerView + MediaPlayer + Toggle Button + String Uri

背景:我正在开发一款健身应用.到目前为止一切都很好,但是当我MediaPlayer在android中使用音频文件时出现了问题.

我检查了资源,发现ListView但在RecyclerView + MediaPlayer上找不到任何内容.

我想知道如何在使用RecyclerView + Toggle Button + String Uri(离线 - 原始文件夹)时使其工作

问题:现在它正在播放每个点击事件的第一个.mp3文件(对于Eng:R.raw.sample_one_eng正在播放,对于印地语:R.raw.sample_one_hindi正在播放).我认为它没有考虑到国际地位.

后来,我想把它放在网上(可能是谷歌云),因为音频文件(.mp3)使我的应用程序非常沉重.关于这一点的任何想法也将受到赞赏(快速缓冲等).

ListExercises.java

public class ListExercises extends AppCompatActivity {

    List<ExerciseAudio> exerciseList = new ArrayList<>();
    RecyclerView.LayoutManager layoutManager;
    RecyclerView recyclerView;
    RecyclerViewAdapterAud adapter;
    PlayClickHandler clickHandler;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.list_exercises);

        initData();

        recyclerView = (RecyclerView) findViewById(R.id.list_ex);
        adapter = new RecyclerViewAdapterAud(exerciseList, getBaseContext());
        layoutManager = new LinearLayoutManager(this);
        recyclerView.setLayoutManager(layoutManager);
        recyclerView.setAdapter(adapter);
    }

    private void initData() {

        exerciseList.add(new ExerciseAudio(R.drawable.sample_one, "Sample Exercise One", "Sans …
Run Code Online (Sandbox Code Playgroud)

android android-mediaplayer recycler-adapter android-recyclerview

5
推荐指数
1
解决办法
680
查看次数