Tag: android recyclerview

在RecyclerView.Adapter中单击传递数据

我的片段上有一个RecyclerView ,显示我从FTP服务器加载的某些文件。 我正在尝试为每个项目设置DialogFragment ,因此当单击它时,将显示DialogFragment ,用户可以在其中选择是下载还是打开文件。 我的问题是: 我需要向我的对话框发送2件事: 目标片段,在用户选择要执行的操作后下载/打开文件。 这很容易用setTargetFragment() ,唯一的问题是我无法访问我的RecyclerView.ViewHolder的片段。 要下载/打开的文件的名称。 这样对话框就会将其发送到目标片段。 这里的问题是我无法访问RecyclerView.ViewHolder的数据集,因为它的静态和我的数据集不是。 为什么在ViewHolder上 如果有更好的地方,我会很高兴听到。 我在RecyclerView.ViewHolder尝试的原因是它可以访问该位置(被点击的项目)。 我想过在onBindViewHolder()上做这个,但是我可以访问数据集而不是位置。 我的适配器代码: public class FilesAdapter extends RecyclerView.Adapter { public final String TAG = “FILES_ADAPTER”; private FTPFile[] dataset; //some methods and stuff… public static class ViewHolder extends RecyclerView.ViewHolder { public final String TAG = “FILES_VH”; private final TextView nameTextView; private […]

getAdapterPosition在ViewHolder类中返回-1

我正试图在我的ViewHolder类中显示一个AlertDialog ,点击接受按钮后,我从一个项目列表中获取带有getAdapterPosition的Model项目,但在Fabric Crashlytics中我因为ArrayIndexOutOfBoundsException而导致13次崩溃,其中长度为12但是请求的索引是-1,崩溃是针对此部分代码中的getPaymentMode class ViewHolder extends RecyclerView.ViewHolder { TextView time, capacity, description; View button; ImageView avatar; ViewHolder(View v) { super(v); time = v.findViewById(R.id.reserve_times_time); capacity = v.findViewById(R.id.reserve_times_capacity); button = v.findViewById(R.id.button); description = v.findViewById(R.id.reserve_times_description); avatar = v.findViewById(R.id.avatar); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(context); alertDialogBuilder.setView(R.layout.layout_dialog); alertDialogBuilder.setPositiveButton(“accept”, null); alertDialogBuilder.setNegativeButton(“cancel”, null); final […]

在滚动RecyclerView时更改了Cardview的数据

我是Android开发人员的开始。 我用CardView制作了一个应用程序,但是当我滚动RecyclerView时,它正在改变它的内容。 请帮我) video: http : //sendvid.com/60ui8cay 我的代码: RecyclerViewActivity.java: import android.app.ActionBar; import android.app.Activity; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.CardView; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; import java.util.ArrayList; import java.util.List; public class RecyclerViewActivity extends AppCompatActivity { private List ingredients = new ArrayList(); private RecyclerView rv; @Override protected void onCreate(Bundle savedInstanceState) […]

返回上一个Activity,其中有一些`put extra` onClick of recyclerView Item

我想通过单击Recycler视图中的Item传递先前活动的数据,并在编辑文本上显示它。 这是我用于将数据从listview传递到上一个活动的代码 我想用Recyclerview做同样的事情 //调用第二个活动 public static final int REQUEST_CODE = 100; Intent dateintent = new Intent(MainActivity.this, SecondActivity.class); startActivityForResult(dateintent, REQUEST_CODE); // onview of listview将数据传递回上一个活动 listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView parent, View view, int position, long id) { TextView txt = (TextView) view.findViewById(R.id.textView); String str = txt.getText().toString(); Intent intent = new Intent(); intent.putExtra(“data”,str); setResult(RESULT_OK,intent); finish(); […]

通过获取imageview android的标记位置来设置图像资源

我正在利用回收者的观点。 我有一个以浅红色突出显示的布局,这个布局包含在recycler视图中的每个项目中。 浅红色布局放置在背景图像上。 我正在使用setTag方法来识别红色布局中按钮的点击次数。 当我点击我获得位置时,这工作正常。 问题是我想在特定位置更改图像。 例如:考虑心形按钮。 我已经像这样设置了一个标签。 heartButton = findViewById(id); heartButton.setTag(位置); 现在我通过使用getTag方法获得位置。 但现在我想在一个特定的位置改变heartButton的图像。 是否有类似的东西 heartButton.getTag(位置).setImageResouce(绘制); 如果不是我如何做到这一点。

使用RecyclerView添加到GridLayout的动态按钮会相互添加

我想将动态按钮添加到网格布局,如下所示。 每个按钮一次添加一个 ,并且布局必须自行更新以使按钮成行。 我的问题是,当添加一个新按钮时,它会出现在添加的最后一个按钮的顶部,而不是以行格式放置。 在下图中,我展示了我想要的和当前正在发生的事情,标有数字的方块是我的按钮。 在我所拥有的图像中,我在布局中添加了6个按钮,但它们都是相互叠加的。 我已经四处查看了如何做到这一点,并建议我使用带有GridLayoutManager的RecyclerView 。 我已将此添加到我的代码中,但就像我说的问题是,当我添加一个按钮,然后如果我添加另一个按钮,第二个添加到第一个按钮之上。 如果我的按钮是预设的,我的工作原理,但不适用于动态按钮。 这是我的代码: Main Fragment启动RecyclerView 。 我有另一个活动启动createButton()方法并传递drawable和String 。 这些drawable和字符串将根据用户的操作一次一个地传递给此方法,并一次创建一个图像按钮。 public class MyFragment extends Fragment { private GridLayoutManager lLayout; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } // onCreateView @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.my_fragment, container, false); // Get screen […]

如何在适配器中扩展多个类?

我想在列表中实现部分。 我有一份任务清单。 List有一个自定义适配器,它扩展了recyclerview刷卡适配器,因为我已经实现了向recyclelerview的滑动手势。 因此,现在任务列表与已完成和待处理任务一起显示。 每个列表项都有一个复选框,显示任务已完成或待处理。 如果选中复选框,则任务完成,反之亦然。 现在我想用标题创建两个部分。 一个用于已完成的任务,另一个用于待处理任 所以完成的任务应该显示在已完成的部分内,反之亦然。 此外,如果任务未经检查,即待处理,如果用户选中复选框,则该项目应从待处理部分中删除,并应添加到已完成的部分,反之亦然。 我检查了一个库的部分。 https://github.com/afollestad/sectioned-recyclerview 但是当我尝试实现库时,我得到了错误,即适配器无法扩展两个类,因为之前我已经扩展了recyclelerview swipe库。 扩展sectionedRecyclerview适配器后的onBindViewHolder方法我得到错误,因为IAdapter应该实现onBindViewHolder(VH,int) 怎么解决这个? 适配器: public class IAdapter extends RecyclerSwipeAdapter , SectionedRecyclerViewAdapter { public ArrayList items; Context conext; public int _mId; List itemsPendingRemoval = new ArrayList(); public IAdapter(Context context, ArrayList item) { this.conext=context; this.items=item; } @Override public int getSectionCount() { return 2; } […]

如何使用recyclelerview和databse在android中将位置明智的对象数据传递给另一个

我创建了recycerview,这个rec​​ycerview显示了Person图像,人名和+按钮,当我按下+按钮更改按钮图像时就像是true。在recycerview底部一个按钮后,这个按钮点击所有数据显示下一个活动.. 我的适配器 public class BuildCustomAdapter extends RecyclerView.Adapter implements Filterable { private List peopleList; private List peopleListCopy; private ItemFilter mFilter = new ItemFilter(); public BuildCustomAdapter(List buildList) { this.peopleList = buildList; this.peopleListCopy = new ArrayList(); peopleListCopy.addAll(buildList); } @Override public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View itemView = LayoutInflater.from(parent.getContext()) .inflate(R.layout.build_list_row, parent, false); return new MyViewHolder(itemView); } @Override […]

Android:在recyclerview中获取用户所在屏幕上的确切位置

我将参考以下问题,因为这个人一个月前问了同​​样的事情但是还没有人回答他: 如何在两个视图之间的某个位置滚动用户。? 当用户在recyclerview列表中的某个位置滚动并最小化应用程序时,然后从bg恢复它 – 或进入另一个活动/片段并返回到recyclerview – 我希望列表滚动到用户所在的完全相同的位置。 当我说出确切的位置时,我的意思是它必须是完全相同的位置 – 如果我只是告诉应用程序滚动到位置X,那么最顶层的视图将位于顶部,但它不会是完全相同的列表状态就像用户之前一样。 我需要列表看起来与用户离开并返回之前的样子相同。 这是可能的,如果是的话,怎么样? 我目前的代码: viewHolder.objectInTheList.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (recyclerViewInterface != null) { FileAccessUtil.getInstance().setIntegerProperty(“recyclerListPosition”, position); recyclerViewInterface.onRecyclerviewListEventOccured(position); } } }); 然后当我返回活动时,我从fileaccessutil加载该参数并执行: recyclerlist.scrollToPosition(positionFromFileAccessUtil); 这个解决方案不是最理想的,因为正如我之前提到的,它不会将用户滚动到与之前完全相同的屏幕位置。

自定义RecyclerAdapter和startActivityForResult

我有一个包含RecyclerView的Fragment ,它使用自定义的RecyclerAdapter 。 我在自定义的RecyclerAdapter有一个onClickListener – 当点击一个位置时我希望它启动startActivityForResult 。 到目前为止,这样可以在单击它时根据需要启动Activity。 但是,当我按下后退按钮转到包含RecyclerView的Fragment , onActivityResult永远不会被调用。 我已将上下文传递给自定义RecyclerAdapter 。 这是可能的吗? 或者,Activity / Fragment启动startActivityForResult会拦截它? 如果不是,我将最终使用手势检测器或类似的东西处理片段中的onClick,但在此之前我想给这个公平的裂缝! 注意:我在MainActivity包含onActivityResult ,它包含Fragment容器,因此如果从Fragment启动startActivityForResult , Fragment会接收onActivityResult 。 我的代码: RecyclerAdapter onClickListener: @Override public void onClick(View v) { String titleId = titlesListDataArrayList.get(getLayoutPosition()).getTitle_id(); Intent intent = new Intent(context, CreateItemsActivity.class); intent.putExtra(“TITLE_ID”, titleId); ((Activity) context).startActivityForResult(intent, Constants.NEW_ITEMS_REQUEST_CODE); } CreateItemsActivity.class – onBackPressed() @Override public void onBackPressed() […]