- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在开发一个简单的记事本应用程序,首先我使用 listView 来显示所有笔记。但现在我正在使用 RecyclerView。当我使用 ListView 时,我使用 OnItemClickListener 将数据传递给另一个 Activity 以编辑注释现在我很困惑在 Recylerview 中该做什么
对于 listView 我正在使用这个
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
name = filenames.get(position).getName();
note = filenames.get(position).getShorttext();
Alert(); // this method is in main activity
}
});*/
public void Alert()
{
final AlertDialog dialog;
View mview = getLayoutInflater().inflate(R.layout.dialog_pass,null);
final EditText mEdittext = (EditText) mview.findViewById(R.id.Epass);
AlertDialog.Builder mBuilder = new AlertDialog.Builder(MainActivity.this);
mBuilder.setView(mview);
mBuilder.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
String col = mEdittext.getText().toString();
String password = dBhelper.searchpass(col);
if (col.equals(password)) {
Intent intent = new Intent(MainActivity.this,Note2.class);
intent.putExtra("Name",name);
intent.putExtra("Note",note);
startActivity(intent);
} else {
Toast temp = Toast.makeText(MainActivity.this, "Password does not match", Toast.LENGTH_SHORT);
temp.show();
}
}
});
mBuilder.setNegativeButton("Cancel",null);
mBuilder.setCancelable(false);
dialog = mBuilder.create();
dialog.show();
}
现在我应该为回收 View 做什么请帮忙
public class RecycleViewAdapter extends
RecyclerView.Adapter<RecycleViewHolder> {// Recyclerview will extend to
private List<FileName> fileNames;
private Context context;
public RecycleViewAdapter(Context context,List<FileName> fileNames) {
this.context = context;
this.fileNames = fileNames;
@Override
public RecycleViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
LayoutInflater mInflater = LayoutInflater.from(parent.getContext());
ViewGroup mainGroup = (ViewGroup) mInflater.inflate(
R.layout.grid_item, parent, false);
RecycleViewHolder listHolder = new RecycleViewHolder(mainGroup);
return listHolder;
}
@Override
public void onBindViewHolder(RecycleViewHolder holder, final int position) {
final FileName model = fileNames.get(position);
RecycleViewHolder mainHolder = (RecycleViewHolder) holder;// holder
mainHolder.title.setText(model.getName());
mainHolder.note.setText(model.getShorttext());
}
@Override
public int getItemCount() {
return (null != fileNames ? fileNames.size() : 0);
}
最佳答案
你可以用两种方式处理这个问题
1).手势触控 https://www.google.co.in/amp/sapandiwakar.in/recycler-view-item-click-handler/amp/
2).在适配器中使用接口(interface) https://antonioleiva.com/recyclerview-listener/
我建议使用接口(interface)的第二种方式
recycleritemclick接口(interface)的使用方法
public class RecycleViewAdapter extends
RecyclerView.Adapter<RecycleViewHolder> {// Recyclerview will extend to
private List<FileName> fileNames;
private Context context;
//declare interface
private OnItemClicked onClick;
//make interface like this
public interface OnItemClicked {
void onItemClick(int position);
}
public RecycleViewAdapter(Context context,List<FileName> fileNames) {
this.context = context;
this.fileNames = fileNames;
}
现在将点击分配给界面
@Override
public void onBindViewHolder(RecycleViewHolder holder, final int position) {
//............//
holder.title.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onClick.onItemClick(position);
}
});
}
在适配器类的末尾,从完成括号开始,创建一个将 itemclick 分配给接口(interface)的方法
public void setOnClick(OnItemClicked onClick){
this.onClick=onClick;
}
在MainActivity.java中将item click与adapter绑定(bind)
public class MainActivity extends Activity implements OnItemClicked {
private RecyclerView mRecyclerView;
private CityAdapter mAdapter;
private List<City> cities;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_city);
mRecyclerView = (RecyclerView)findViewById(R.id.list);
mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
mAdapter = new CityAdapter(cities, R.layout.row_city, this);
mRecyclerView.setAdapter(mAdapter);
mAdapter.setOnClick(MainActivity.this); // Bind the listener
}
@Override
public void onItemClick(int position) {
// The onClick implementation of the RecyclerView item click
//ur intent code here
}
}
Kotlin 代码请引用 How to handle recyclerview item click in kotlin?
更多查询?评论。
关于android - 如何将 Onclick 监听器添加到回收站 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44151979/
@ 目录 原理 创建过滤器 使用过滤器 查询 删除 恢复
我在回收站 View 中使用了一个 item.xml,但文本超出了屏幕。我试图依靠这个 answer , You can avoid all of this by giving each textvi
我的应用程序中有一个回收站 View 。每个回收器 View 项都有一个 imageView。我使用 asyncTask 加载位图并将它们添加到磁盘缓存,然后再将它们设置到 onPostExecute
我已经多次问过这个类似的问题,我花了 2 周多的时间才试图找出解决方案。是的,我知道有多个类似的问题,但我问的原因是因为堆栈上流的解决方案都不起作用。我是 Android 开发的初学者,因此我问你请帮
有谁知道允许特定角色的用户查看 Sitecore 回收站中所有项目的解决方案? 目前,只有管理员可以查看所有已删除的项目。用户只能看到他们已删除的项目。 最佳答案 没有开箱即用的方法,SqlArchi
您好,我有以下回收器适配器: package com.example.app.adapters; import android.annotation.TargetApi; import android
我看不到回收 View ,不确定哪里出了问题。如果你能帮助我,那就太好了。 fragment public class CallDurationFragment extends Fragment {
我是 android 开发的新手。我有一个带有 Viewholder 的 recyclerview 用于显示照片。我在我的应用程序中实现了 like 功能,但我面临的唯一问题是当我添加一个 喜欢 在照
我正在编写一个消息传递应用程序,在 RecyclerView 中显示我的消息和其他消息。 白色背景消息是我的消息,彩色消息是其他消息。 当每条消息顺序为“我的消息,其他消息,...”时,回收站 Vie
我创建了一个包含不同类型 subview 的社交帖子回收 View 。每个 child 多个 layout.recyclerview 工作正常,唯一的问题是 recyclerview 滚动不流畅。 我
我有一个像这样的 View 模型 - private val viewState = SchoolsViewState() fun onViewOpened() = Trans
我正在研究 Android 的应用程序接近完成它但我在 recyclerView 中发现了问题,我不知道如何在 recyclerView 的 Item 的 TextView 上实现点击监听器? (当我
我正在做一个 RecyclerView 示例。问题是,当我在列表中添加第一个项目时,它会在回收 View 中正确显示该项目,但我添加的下一个项目不会显示在回收 View 中。 请帮帮我。 适配器代码是
我想问一下我如何从适配器回收器 View 调用 Activity 中的方法。 在函数 buildRecyclerView 中设置适配器: private void buildRecyclerView(
这个问题在这里已经有了答案: Custom Adapter getView() method is not called (6 个答案) 关闭 6 年前。 我正在使用回收站 View ,但它没有显示
我有一个回收站 View ,我在其中显示了自定义行,但该行未填满宽度。我已经添加了 match_parent 宽度,但它仍然只是包装内容。 我的回收站 View -:
我一直在使用回收器 View 在我的 fragment 上显示 15 张图像。图像位于可绘制文件夹中。我尝试了外部 View 来执行此操作,但速度要慢得多并且滞后很多。因此我使用回收者 View 来解
我的问题是我希望回收站 View 响应对整个 View 的点击,而不是对回收站 View 具有的每个项目的单独点击 viewModel.handleClick()}"
以下是我的行项目的布局:
我正在处理 Recycler View ,在这里我将三个回收器 View 水平放置在布局中。问题是第二个和第三个回收器 View 项目显示但无法滚动,即使在内部使用嵌套滚动并特此附加xml。请建议我如
我是一名优秀的程序员,十分优秀!