Articles of android adapter

ListView setText在特定位置

我定义了以下代码,以便能够在特定位置设置文本。 if(position == 0) { holder.text.setText(“blah”); } 我想要的是检查位置是否等于0,然后如果是,则在位置p上设置文本 – 每次它是p =位置+ 1(下一个位置)。 我们是否能够将文本从持有者设置为文本视图,但是在某个位置。 谢谢。

通过AdapterPosition获取RecyclerView的视图

我有一个带有video预览的RecyclerView。 当用户滚动时,video应自动在用户可见的recyclerView项目上播放(当滚动状态为IDLE时)。 所以我编写了一个自定义onScrollListener,它将用户可见的位置作为数组传递给方法startVideosOn(int[] positions) 。 但问题是当我想通过位置获取View时(位置等于适配器位置)。 当我尝试使用linearLayoutManager.getChildAt(index)时,在显示第3个项目时我得到null ,因为RecyclerView只有2个子项,这些子项将被回收。 那么如何通过适配器位置设置获取RecyclerView的View ? 编辑,这是OnScrollListener: public abstract class AutoPlayRecyclerOnScrollListener extends RecyclerView.OnScrollListener { LinearLayoutManager linearLayoutManager; public AutoPlayRecyclerOnScrollListener(LinearLayoutManager linearLayoutManager) { this.linearLayoutManager = linearLayoutManager; } @Override public void onScrollStateChanged(RecyclerView recyclerView, int newState) { super.onScrollStateChanged(recyclerView, newState); if (newState == AbsListView.OnScrollListener.SCROLL_STATE_IDLE) { int firstVisibleItemPosition = linearLayoutManager.findFirstVisibleItemPosition(); int lastVisibleItemPosition = linearLayoutManager.findLastVisibleItemPosition(); if (firstVisibleItemPosition != -1 […]

不要在RecyclerView中回收特定的视图types

我有一个重用视图的循环器视图,我的问题是一个视图包含ViewPager,如果recyclelerview的适配器重用视图所在的视图,那么viewpager会发生exception。 但是,onCreateViewHolder方法仅在第一次调用时才会被调用。 我怎么能避免这种行为,并实现onCreateViewHolder可以被多次调用? 提前致谢

更新RecyclerView项ProgressBar而不在适配器上调用notifyItemChanged(int)

我正在尝试更新progressBar,它是其中一个RecyclerView项目的一部分。 我知道我可以用两种方式做到 方法1:通过调用notifyItemChanged(position)刷新项目行 方法2:使用LayoutMananger对象上的findViewByPosition()方法访问视图。 但不幸的是,他们都没有在我的案件中工作。 如果我使用第一个,整个项目将重新绘制,recyclerview的背景颜色为灰色,项目为白色,因此用户可以注意到整个项目刷新。 如果我尝试第二个,滚动时我会遇到问题。 我想像WhatsApp那样更新进度。 提前致谢

如何使用SparseArray作为Adapter的源代码?

我有一个稀疏的值数组,我想在Spinner中填充,当选择该项时,我想获取id(这是稀疏数组中的键)。 从SparseArray创建适配器的首选方法是什么? 是否可以将现有的适配器(如BaseAdapter或ListAdapter)子类化,以便项目具有SparseArray中的项目ID作为项目ID? 不知道如何实现上述目标,我正在考虑创建一个简单的ArrayAdapter实例,并将其作为源从SparseArray赋予它,并在选择项目时,通过值查找键,我认为不会高效。

popup窗口中的微调器出错,单击时崩溃

我有一个从Fragment调用的PopupWindow,除了我的Spinner,一切都有效。 当我点击我的Spinner时它会崩溃并给出错误: “android.view.WindowManager $ BadTokenException:无法添加窗口 – 令牌android.view.ViewRootImpl$W@421a46d8无效;您的活动是否正在运行?” 我的代码调用片段中的popup窗口: ManagerPopUp mManagerPopUp = new ManagerPopUp(getActivity()); mManagerPopUp.showPopUpAddEvent(); 我在ManagerPopUp中的代码显示Popup: public class ManagerPopUp { private static final String TAG = “PopUpManager”; private Context mContext; public ManagerPopUp(Context mContext){ this.mContext = mContext; } public PopupWindow showPopUpAddEvent(){ final PopupWindow popUp = new PopupWindow(mContext); LayoutInflater inflater = (LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); View layout = inflater.inflate(R.layout.popup_add_event, null); //Code […]

按钮单击时从自定义列表视图中删除项目

我有一个自定义列表视图,当我单击删除按钮删除当前行时,我有2个文本视图和2个按钮(播放和删除按钮)。 我的适配器类 import java.util.ArrayList; import android.content.Context; import android.graphics.Color; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.Button; import android.widget.TextView; public class SunetePreferateAdaptor extends BaseAdapter { class ob { String titlu, descriere; public ob(String titlu, String descriere) { this.titlu = titlu; this.descriere = descriere; } } ArrayList lista; Context context; public […]

如何获取AutoCompleteTextView适配器的正确ID

我是Android开发新手,遇到了一个我很难解决的问题。 我试图弄清楚如何正确使用AutoCompleteTextView小部件。 我想使用来自Web服务的XML数据创建一个AutoCompleteTextView 。 我设法让它工作,但我对输出肯定不满意。 我想将带有id => name对的HashMap放入AutoCompleteTextView并获取所单击项的id。 当我点击自动完成过滤集输出时,我想在自动完成框下面填充一个列表,我也设法开始工作。 到目前为止: 自动完成适用于简单的ArrayList ,所有数据都经过过滤正确 单击后onItemClick事件正常触发 parent.getItemAtPosition(position)返回所单击项的正确String表示forms 事件onItemClick(AdapterView parent, View v, int position, long id)不按我的onItemClick(AdapterView parent, View v, int position, long id)行事。 如何计算所点击项目的未过滤数组位置? 过滤后的位置是我不感兴趣的位置。 进一步的问题: 如何在AutoCompleteTextView处理HashMaps或Collections 如何在onItemClick事件中获取正确的itemId 我对这个问题进行了非常广泛的研究,但没有find任何有价值的信息来回答我的问题。

如何在RecyclerView中显示ArrayList?

我需要添加一个Activity ,我可以在其中列出ArrayList的元素,我看到有一种更新,更好的方法来显示列表RecyclerView 。 我的问题是如何将这个实现到我的应用程序中。 我发现我需要使用Adapter ,但我不太明白如何正确实现整个过程。 如果您想知道,我指的是我一直在阅读的文档示例。 编辑: 更新了我的代码后,它说它无法解析符号setOnEntryClickListener : public class voting extends Activity { RecyclerView myList; private ArrayList players; // Players @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_voting); Intent intent = this.getIntent(); Bundle bundle = intent.getExtras(); players = (ArrayList)bundle.getSerializable(“PLAYERS”); myList = (RecyclerView) findViewById(R.id.charactersList); myList.setLayoutManager(new LinearLayoutManager(this)); CoursesAdapter adapter = new CoursesAdapter(players); myList.setAdapter(adapter); } […]

android画廊视图“口吃”与延迟图像加载适配器

我想创建一个延迟加载适配器,用于Gallery小部件。 也就是说getView()立即返回一个ImageView ,稍后其他一些机制会异步调用它的setImageBitmap()方法。 我通过创建一个扩展ImageView的“懒惰” ImageView来做到这一点。 public class GalleryImageView extends ImageView { // … other stuff here … public void setImage(final Looper looper, final int position) { final Uri uri = looper.get(position); final String path = looper.sharePath(position); new Thread(new Runnable() { @Override public void run() { GalleryBitmap gbmp = new GalleryBitmap(context, uri, path); final Bitmap bmp […]