我有一个自定义列表视图适配器,我的编辑文本在其自身上更改其值,如果一行填充了某个值,它也会在所有其他行上获得。
这是我的适配器 使用系统; 使用System.Collections.Generic; 使用System.Linq; 使用System.Text; 使用System.Data.SqlClient;
using Android.App;
using Android.Content;
using Android.OS;
using Android.Runtime;
using Android.Util;
using Android.Views;
using Android.Widget;
namespace Kites
{
public class Marks
{
// add any if you need more
public string StudentName { get; set; }
public string MarksScored { get; set; }
}
public class MarksListViewAdapter : BaseAdapter<Marks>
{
private List<Marks> mstuduentmarks;
private Context mcontext;
public MarksListViewAdapter (Context context, List<Marks> stud)
{
mstuduentmarks = stud;
mcontext = context;
}
public override int Count
{
get
{
return mstuduentmarks.Count;
// return mattendence.Count;
}
}
public override long GetItemId (int position)
{
return position;
}
public override Marks this[int position]
{
get
{
return mstuduentmarks [position];
// return mattendence [position];
}
}
public override View GetView (int position, View convertView, ViewGroup parent)
{
View view = convertView;
if (view == null) // otherwise create a new one
view = LayoutInflater.From(mcontext).Inflate(Resource.Layout.listview_Marks, null, false);
// set view properties to reflect data for the given row
TextView txtStudent = view.FindViewById<TextView>(Resource.Id.textStudentNameTeacherMarks);
txtStudent.Text = mstuduentmarks[position].StudentName;
EditText txtMarks = view.FindViewById<EditText> (Resource.Id.editTextTeacherMarks);
txtMarks.Text = mstuduentmarks[position].MarksScored;
txtMarks.TextChanged += (sender, e) =>
{
mstuduentmarks[position].MarksScored = txtMarks.Text;
};
return view;
}
}
}
答案 0 :(得分:0)
以下代码可以轻松地使用任何元素继续您的点击事件:)
public class HomeRecyclerAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> implements View.OnClickListener {
private List<String> mItemList;
RecyclerView mRecyclerView;
Context context;
HomeItemViewHolder mHomeItemholder;
public HomeRecyclerAdapter(List<String> itemList) {
mItemList = itemList;
}
public class HomeItemViewHolder extends RecyclerView.ViewHolder {
ImageView mImage;
public HomeItemViewHolder(View parent) {
super(parent);
mImage = (ImageView) parent.findViewById(R.id.Image);
}
}
public HomeRecyclerAdapter(List<String> itemList, Context context, RecyclerView mRecyclerView) {
this.mItemList = itemList;
this.context = context;
this.mRecyclerView = mRecyclerView;
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
Context context = parent.getContext();
final View view = LayoutInflater.from(context).inflate(R.layout.item_home, parent, false);
return new HomeItemViewHolder(view);
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, final int position) {
mHomeItemholder = (HomeItemholder) viewHolder;
mHomeItemholder.mImage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//Handle your code
}
});
}
public int getBasicItemCount() {
return mItemList == null ? 0 : mItemList.size();
}
@Override
public int getItemCount() {
return getBasicItemCount(); // header
}
}