Android studio 将编辑文本添加到回收器
我是android RecyclerView的新手,当我尝试将Edittext字段添加到Recycler时,它会出错。我找不到如何执行此操作。任何人请解决此问题并提前感谢:):)这是我的主要活动代码:Android studio 将编辑文本添加到回收器,android-studio,android-recyclerview,Android Studio,Android Recyclerview,我是android RecyclerView的新手,当我尝试将Edittext字段添加到Recycler时,它会出错。我找不到如何执行此操作。任何人请解决此问题并提前感谢:):)这是我的主要活动代码: public class MainActivity extends AppCompatActivity{ private RecyclerView mRecyclerView; private CustomRecyclerAdapter mAdapter; private RecyclerVie
public class MainActivity extends AppCompatActivity{
private RecyclerView mRecyclerView;
private CustomRecyclerAdapter mAdapter;
private RecyclerView.LayoutManager mLayoutManager;
private EditText mText;
private EditText mColor;
private List<Data> mData = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Initializing views.
mText = (EditText) findViewById(R.id.textEt);
mRecyclerView = (RecyclerView) findViewById(R.id.recycler);
// If the size of views will not change as the data changes.
mRecyclerView.setHasFixedSize(true);
// Setting the LayoutManager.
mLayoutManager = new LinearLayoutManager(this);
mRecyclerView.setLayoutManager(mLayoutManager);
// Setting the adapter.
mAdapter = new CustomRecyclerAdapter();
mRecyclerView.setAdapter(mAdapter);
}
// Called when add button is clicked.
public void addItem(View view) {
// Add data locally to the list.
Data dataToAdd = new Data(
mText.getText().toString());
mData.add(dataToAdd);;
// Update adapter.
mAdapter.addItem(mData.size() - 1, dataToAdd);
}
}这个怎么样?这是我的密码:- 这是MainActivity.java
public class MainActivity extends AppCompatActivity implements RecyclerViewAdapter.OnItemClickListener{
private RecyclerView myRecyclerView;
private LinearLayoutManager linearLayoutManager;
private RecyclerViewAdapter myRecyclerViewAdapter;
EditText nameField;
Button btnAdd;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myRecyclerView = (RecyclerView)findViewById(R.id.myrecyclerview);
linearLayoutManager =
new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false);
/*
linearLayoutManager =
new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false);
*/
myRecyclerViewAdapter = new RecyclerViewAdapter(this);
myRecyclerViewAdapter.setOnItemClickListener(this);
myRecyclerView.setAdapter(myRecyclerViewAdapter);
myRecyclerView.setLayoutManager(linearLayoutManager);
nameField = (EditText)findViewById(R.id.namefield);
btnAdd = (Button)findViewById(R.id.addbutton);
btnAdd.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
String newName = nameField.getText().toString();
if(!newName.equals("")){
if(myRecyclerViewAdapter.getItemCount()>1){
myRecyclerViewAdapter.add(1, newName);
}else{
myRecyclerViewAdapter.add(0, newName);
}
}
}
});
}
@Override
public void onItemClick(RecyclerViewAdapter.ItemHolder item, int position) {
Toast.makeText(this,
"Remove " + position + " : " + item.getItemName(),
Toast.LENGTH_SHORT).show();
myRecyclerViewAdapter.remove(position);
}
}
这是RecycleServiceAdapter.java
public class RecyclerViewAdapter extends
RecyclerView.Adapter<RecyclerViewAdapter.ItemHolder> {
private List<String> itemsName;
private OnItemClickListener onItemClickListener;
private LayoutInflater layoutInflater;
public RecyclerViewAdapter(Context context){
layoutInflater = LayoutInflater.from(context);
itemsName = new ArrayList<String>();
}
@Override
public RecyclerViewAdapter.ItemHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View itemView = layoutInflater.inflate(R.layout.list_item, parent, false);
return new ItemHolder(itemView, this);
}
@Override
public void onBindViewHolder(RecyclerViewAdapter.ItemHolder holder, int position) {
holder.setItemName(itemsName.get(position));
}
@Override
public int getItemCount() {
return itemsName.size();
}
public void setOnItemClickListener(OnItemClickListener listener){
onItemClickListener = listener;
}
public OnItemClickListener getOnItemClickListener(){
return onItemClickListener;
}
public interface OnItemClickListener{
public void onItemClick(ItemHolder item, int position);
}
public void add(int location, String iName){
itemsName.add(location, iName);
notifyItemInserted(location);
}
public void remove(int location){
if(location >= itemsName.size())
return;
itemsName.remove(location);
notifyItemRemoved(location);
}
public static class ItemHolder extends RecyclerView.ViewHolder implements View.OnClickListener{
private RecyclerViewAdapter parent;
TextView textItemName;
public ItemHolder(View itemView, RecyclerViewAdapter parent) {
super(itemView);
itemView.setOnClickListener(this);
this.parent = parent;
textItemName = (TextView) itemView.findViewById(R.id.item_name);
}
public void setItemName(CharSequence name){
textItemName.setText(name);
}
public CharSequence getItemName(){
return textItemName.getText();
}
@Override
public void onClick(View v) {
final OnItemClickListener listener = parent.getOnItemClickListener();
if(listener != null){
listener.onItemClick(this, getPosition());
}
}
}
}
公共类RecycleServiceAdapter扩展
RecyclerView.适配器{
私有列表项名称;
私有OnItemClickListener OnItemClickListener;
私人停车场停车场停车场停车场停车场停车场停车场停车场停车场停车场停车场停车场停车场停车场停车场停车场停车场停车场停车场;
公共RecycleServiceAdapter(上下文){
layoutInflater=layoutInflater.from(上下文);
itemsName=新的ArrayList();
}
@凌驾
public RecycleServiceAdapter.ItemHolder onCreateViewHolder(视图组父级,int-viewType){
View itemView=LayoutFlater.inflate(R.layout.list\u项,父项,false);
返回新的ItemHolder(itemView,此);
}
@凌驾
BindViewHolder上的公共无效(RecycleServiceAdapter.ItemHolder,int位置){
holder.setItemName(itemsName.get(position));
}
@凌驾
public int getItemCount(){
返回itemsName.size();
}
公共void setOnItemClickListener(OnItemClickListener侦听器){
McClickListener=监听器;
}
公共OnItemClickListener getOnItemClickListener(){
返回到监听器;
}
公共接口侦听器{
公共无效项单击(项目持有人项目,内部位置);
}
公共void add(int位置,字符串iName){
itemsName.add(位置,iName);
插入的项目(位置);
}
公共无效删除(int位置){
如果(位置>=itemsName.size())
返回;
项目名称。删除(位置);
删除的项目(位置);
}
公共静态类ItemHolder扩展了RecyclerView.ViewHolder实现了View.OnClickListener{
私人回收服务适应父母;
TextView textItemName;
公共项目持有者(查看项目视图,RecycleServiceAdapter父级){
超级(项目视图);
setOnClickListener(这个);
this.parent=parent;
textItemName=(TextView)itemView.findViewById(R.id.item\u name);
}
public void setItemName(字符序列名称){
textItemName.setText(名称);
}
public CharSequence getItemName(){
返回textItemName.getText();
}
@凌驾
公共void onClick(视图v){
final-OnItemClickListener=parent.getOnItemClickListener();
if(侦听器!=null){
onItemClick(this,getPosition());
}
}
}
}
public class MainActivity extends AppCompatActivity implements RecyclerViewAdapter.OnItemClickListener{
private RecyclerView myRecyclerView;
private LinearLayoutManager linearLayoutManager;
private RecyclerViewAdapter myRecyclerViewAdapter;
EditText nameField;
Button btnAdd;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myRecyclerView = (RecyclerView)findViewById(R.id.myrecyclerview);
linearLayoutManager =
new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false);
/*
linearLayoutManager =
new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false);
*/
myRecyclerViewAdapter = new RecyclerViewAdapter(this);
myRecyclerViewAdapter.setOnItemClickListener(this);
myRecyclerView.setAdapter(myRecyclerViewAdapter);
myRecyclerView.setLayoutManager(linearLayoutManager);
nameField = (EditText)findViewById(R.id.namefield);
btnAdd = (Button)findViewById(R.id.addbutton);
btnAdd.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
String newName = nameField.getText().toString();
if(!newName.equals("")){
if(myRecyclerViewAdapter.getItemCount()>1){
myRecyclerViewAdapter.add(1, newName);
}else{
myRecyclerViewAdapter.add(0, newName);
}
}
}
});
}
@Override
public void onItemClick(RecyclerViewAdapter.ItemHolder item, int position) {
Toast.makeText(this,
"Remove " + position + " : " + item.getItemName(),
Toast.LENGTH_SHORT).show();
myRecyclerViewAdapter.remove(position);
}
}
public class RecyclerViewAdapter extends
RecyclerView.Adapter<RecyclerViewAdapter.ItemHolder> {
private List<String> itemsName;
private OnItemClickListener onItemClickListener;
private LayoutInflater layoutInflater;
public RecyclerViewAdapter(Context context){
layoutInflater = LayoutInflater.from(context);
itemsName = new ArrayList<String>();
}
@Override
public RecyclerViewAdapter.ItemHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View itemView = layoutInflater.inflate(R.layout.list_item, parent, false);
return new ItemHolder(itemView, this);
}
@Override
public void onBindViewHolder(RecyclerViewAdapter.ItemHolder holder, int position) {
holder.setItemName(itemsName.get(position));
}
@Override
public int getItemCount() {
return itemsName.size();
}
public void setOnItemClickListener(OnItemClickListener listener){
onItemClickListener = listener;
}
public OnItemClickListener getOnItemClickListener(){
return onItemClickListener;
}
public interface OnItemClickListener{
public void onItemClick(ItemHolder item, int position);
}
public void add(int location, String iName){
itemsName.add(location, iName);
notifyItemInserted(location);
}
public void remove(int location){
if(location >= itemsName.size())
return;
itemsName.remove(location);
notifyItemRemoved(location);
}
public static class ItemHolder extends RecyclerView.ViewHolder implements View.OnClickListener{
private RecyclerViewAdapter parent;
TextView textItemName;
public ItemHolder(View itemView, RecyclerViewAdapter parent) {
super(itemView);
itemView.setOnClickListener(this);
this.parent = parent;
textItemName = (TextView) itemView.findViewById(R.id.item_name);
}
public void setItemName(CharSequence name){
textItemName.setText(name);
}
public CharSequence getItemName(){
return textItemName.getText();
}
@Override
public void onClick(View v) {
final OnItemClickListener listener = parent.getOnItemClickListener();
if(listener != null){
listener.onItemClick(this, getPosition());
}
}
}
}