Articles of recycler adapter

使用JsonArray vs ArrayList作为RecyclerView Adapter的数据集

我已经使用ArrayList和JsonArray作为适配器中的数据集。 我发现的一个主要区别是适配器中本地数据的数据集更改未反映在JsonArray的调用类中。 我想知道哪一个更好,我的观察是正确的。 此外,如果我的数据集涉及从Web服务中提取数据(这给我提供Json表单数据),那么我将其更改为ArrayList 会更好。

如何在android中实现加载更多的recyclerview

我想在Recyclerview中实现更多的加载。 这是代码。 代码来自github。 https://gist.github.com/ssinss/e06f12ef66c51252563e MainActivity代码: package com.example.tatson.bila; import android.app.ProgressDialog; import android.os.AsyncTask; import android.support.v4.widget.SwipeRefreshLayout; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.TextView; import android.widget.Toast; import com.android.volley.RequestQueue; import com.android.volley.Response; import com.android.volley.VolleyError; import com.android.volley.toolbox.JsonArrayRequest; import com.android.volley.toolbox.Volley; import com.example.tatson.bila.CardAdapter; import com.example.tatson.bila.Config; import com.example.tatson.bila.SuperHeroes; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import org.w3c.dom.Text; […]

Recycler View Fatal Exception:java.lang.ArrayIndexOutOfBoundsException

我通过crashlytics得到了这个堆栈跟踪。 我不知道问题出在哪里。 有没有StaggeredGridLayoutManager的替代品,我可以使用它来获得像布局一样的列表视图。 Fatal Exception: java.lang.ArrayIndexOutOfBoundsException: start len. start=-1, end=11, len=11 at java.util.Arrays.checkStartAndEnd(Arrays.java:1745) at java.util.Arrays.fill(Arrays.java:803) at android.support.v7.widget.StaggeredGridLayoutManager$LazySpanLookup.invalidateAfter(SourceFile:2404) at android.support.v7.widget.StaggeredGridLayoutManager.handleUpdate(SourceFile:1373) at android.support.v7.widget.StaggeredGridLayoutManager.onItemsRemoved(SourceFile:1327) at android.support.v7.widget.RecyclerView$6.dispatchUpdate(SourceFile:725) at android.support.v7.widget.RecyclerView$6.onDispatchFirstPass(SourceFile:716) at android.support.v7.widget.AdapterHelper.dispatchFirstPassAndUpdateViewHolders(SourceFile:316) at android.support.v7.widget.AdapterHelper.dispatchAndUpdateViewHolders(SourceFile:302) at android.support.v7.widget.AdapterHelper.applyRemove(SourceFile:182) at android.support.v7.widget.AdapterHelper.preProcess(SourceFile:103) at android.support.v7.widget.RecyclerView.processAdapterUpdatesAndSetAnimationFlags(SourceFile:2767) at android.support.v7.widget.RecyclerView.onMeasure(SourceFile:2538) at android.view.View.measure(View.java:16521) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5134) at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1404) at android.widget.LinearLayout.measureVertical(LinearLayout.java:695) at android.widget.LinearLayout.onMeasure(LinearLayout.java:588) at android.view.View.measure(View.java:16521) at android.support.v4.view.ViewPager.onMeasure(SourceFile:1489) at android.view.View.measure(View.java:16521) at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:719) […]

notifyDataSetChanged()不刷新适配器

我的适配器列表在广播接收器上刷新。 如果适配器列表大小大于1,一切正常工作,意味着如果我的recyclerview已经有一行shwoing然后列表刷新就好了。 但是如果列表大小从0变为1,那么我的适配器通知数据集已更改停止工作。 在recyclerview上没有数据显示。 我不知道为什么它不起作用。 Recyclerview类: @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { v = inflater.inflate(R.layout.job_recyclerview, container, false); getActivity()); initialise(v); init(); showNoTaskMessage(); new loadListTask().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); mMyBroadcastReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { // Here you can refresh your listview or other UI SlidingTab.slidingTab.getTabAt(0).setText(“New (” + SingleTon.getInstance().getNewjob() + […]

从底部添加animationRecyclerView添加

我正在使用最新的RecyclerView库来显示一个列表,其中包含一个选项,可以将项目添加到此列表中。 该列表的顺序相反,因此最新添加的内容显示在底部。 从顶部向回收站视图添加新项目时,会显示一个漂亮的animation,并自动滚动列表以显示最新项目。 但是,从底部添加新项目时,在animation新项目时,项目不会被类似地向上推。 这会导致奇怪的行为,即添加新项目并且除非用户滚动到列表底部,否则无法看到animation。 作为临时修复,我强制循环器视图适配器在添加新项目后滚动到第一个位置。 这不像从回收站视图顶部添加那样无缝,是否有适当的方法来实现它? 相应的代码如下: la.addItem(0, msg); layoutManager.scrollToPosition(0);

最好的地方叫RecyclerView.Adapter.notifyItem *?

使用CursorLoader更新ListView是一种从数据库向UI显示数据的简单方法。 模型修改传播到UI而没有额外的工作,也许效率不高。 RecyclerView.adapter提供更多粒度的访问权限,允许例如指定删除特定项目的适配器。 但是,调用那些首选方法(notifyItem *),替换notifyDataSetChanged的最佳位置是什么? 显然,适配器不能观察contentProvider,否则它将不知道模型修改的性质(就像之前一样)。 可以使用不同的模式,例如添加总线以发布来自提供者的修改,创建单个模型,该模型将保持对适配器的引用,可能使用演示者(在L中引入)或创建活动绑定服务。 这是一个常见的用例:同步进程在DB中插入一个条目(或者收到gcm通知,也在DB中插入一个条目),然后我想通过调用notifyItemInserted来更新UI(如果已启动)。 在哪里拨打这个电话? 谢谢。

何时在RecycleView适配器中调用getItemCount()方法?

我有一个适配器,可以将数据填充到RecyclerView 。 我没有调用notifyDataSetChanged() ,我将适配器设置为onCreateView()的RecyclerView (所以在getItemCount()应该调用一次)在Fragment中,但我发现多次调用getItemCount() 。

从数据列表中查找RecyclerView中项目的位置

我想从RecyclerView的数据集中获取RecyclerView项目的位置。 我的数据集中的每个项目都包含唯一的ID 。 我想在RecyclerView中find与数据集中的id对应的项的适配器位置。 我的数据集类如下所示。 class dataset { int id; JSONArray linked; int type; …. } 我根据types将TextView或EditText添加到RecyclerView 。 最终目标:我的RecyclerView可以有多个独立的EditText和TextViews (尽管TextView将有一个字段,其中包含与其链接的EditText的id)。 当我单击TextView ,我将使用EditText (dataset)的id来获取数据。 我想从RecyclerView的项目中获取相应EditText的文本和那些id。 如果我可以从数据集中获取适配器位置,我可以以某种方式使用 recyclerview.getChildAt(position); 但是没有办法从数据集中获取适配器位置。

Android RecyclerView适配器在unit testing时给出null

我正在尝试使用AndroidJunit4测试RecyclerView,这是我的测试代码: package com.kaushik.myredmart.ui; // all includes @RunWith(AndroidJUnit4.class) public class ProductListActivityTest { @Rule public ActivityTestRule rule = new ActivityTestRule(ProductListActivity.class); @Test public void ensureListViewIsPresent() throws Exception { ProductListActivity activity = rule.getActivity(); View viewByIdw = activity.findViewById(R.id.productListView); assertThat(viewByIdw,notNullValue()); assertThat(viewByIdw, instanceOf(RecyclerView.class)); RecyclerView productRecyclerView = (RecyclerView) viewByIdw; RecyclerView.Adapter adapter = productRecyclerView.getAdapter(); assertThat(adapter, instanceOf(ProductAdapter.class)); } } 我正面临检查适配器的问题。 虽然productRecyclerView传递非null测试和RecyclerView的实例,但它在最后一行中跟随错误: java.lang.AssertionError: Expected: an instance […]

RecyclerView + MediaPlayer +切换按钮+字符串Uri

背景:我正在研究健身应用程序。 到目前为止一切都很好,但是当我在android中使用音频文件MediaPlayer出现了问题。 我检查了资源并find了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 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 = […]