我有清单项目,EditText不知道会有多少项目。当我输入一些文本EditText然后向下滚动时RecyclerView,我遇到了问题,再向上滚动后,我的第一个文本就没有了EditText。
我想知道什么以及应该在哪里编写代码,以便在用户键入文本或完成键入文本时(我本想使用来完成此操作TextWatcher),EditText将文本保存到文件中(我将其保存在中)。外部存储中的txt文件)
我应该onCreate在活动的方法中还是在适配器类中或其他地方这样做吗?
这是一些代码
主要活动代码
public class MainActivity extends Activity {
RecyclerView mRecyclerView;
MyAdapter mAdapter;
String[] mDataSet= new String[20];
@Override
protected void onCreate(Bundle savedInstanceState) {
// generating text for editText Views
for (int i = 0; i<=19; i++){
mDataSet[i]= "EditText n: "+i;
}
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mRecyclerView = (RecyclerView) findViewById(R.id.recycler_view);
mAdapter = new MyAdapter(mDataSet);
mRecyclerView.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false));
mRecyclerView.setItemAnimator(new DefaultItemAnimator());
mRecyclerView.setAdapter(mAdapter);
mRecyclerView.setHasFixedSize(true);
}
我的适配器代码
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
private String[] mDataset;
public static class ViewHolder extends RecyclerView.ViewHolder {
// each data item is just a string in this case
public EditText mEditText;
public ViewHolder(View v) {
super(v);
mEditText = (EditText) v.findViewById(R.id.list_item_edittext);
}
}
public MyAdapter(String[] myDataset) {
mDataset = myDataset;
}
@Override
public MyAdapter.ViewHolder onCreateViewHolder(ViewGroup parent,
int viewType) {
View v = LayoutInflater.from(parent.getContext())
.inflate(R.layout.list_item, parent, false);
ViewHolder vh = new ViewHolder(v);
return vh;
}
没有此“ addtextChangedListener”,我的代码将无法正常工作,滚动时不保存编辑文本的内容。如果我添加此代码,则当我滚动离开屏幕并返回的所有editText视图时,会弄乱内容。
慕勒3428872
白猪掌柜的
相关分类