我正在开发一个简单的记事本应用程序,我首先使用listView来显示所有注释.但现在我使用的是RecyclerView.当我使用listview时,我使用OnItemClickListener将数据传递给另一个活动来编辑注释
现在我很困惑在Recylerview做什么
现在我很困惑在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();
}
现在我该如何处理回收查看请帮忙
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).使用适配器中的接口
https://antonioleiva.com/recyclerview-listener/
我建议使用界面的第二种方式
如何使用recycleritemclick的界面
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分配给界面
public void setonClick(OnItemClicked onClick)
{
this.onClick=onClick;
}
在MainActivity.java中
使用适配器绑定项目单击
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
}
希望这有助于你,如果你需要任何帮助,你可以问