为了账号安全,请及时绑定邮箱和手机立即绑定

动态形式与重复形式

/ 猿问

动态形式与重复形式

红颜莎娜 2019-12-06 14:57:14

我想在android中创建一个页面,该页面必须具有将根据某些值动态重复的形式。


像这样:


在此处输入图片说明


根据用户在此页面中输入的数字,此处会重复填写用户名,密码,手机和地址表格。在这张图片中,表格被重复了两次,但是可以是动态的任何次数。


我怎样才能实现这样的目标?我可以使用listview还是recyclerview?如果是这样,那么我将如何检索键入的值?


查看完整描述

2 回答

?
慕前端131612

根据用户在此页面中输入的数字,此处会重复填写用户名,密码,手机和地址表格。在这张照片中,表格被重复了两次,但是可以是任意多次,这将是动态的


ANS:您应该选择recyclerview


我怎样才能实现这样的目标?


创建recyclerview 单个项目的布局


我将如何检索输入的值?


您可以从RecyclerView.Adapter课堂上获得价值


HERE IS THE SAMPLE CODE


Activity.java


public class AddmoreActivity extends AppCompatActivity {


    RecyclerView myRc;

    ArrayList<AddMorePojo> arrayList = new ArrayList<>();

    Button btnGetData;

    AddMoreAdapter adapter;


    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_addmore);


        myRc = (RecyclerView) findViewById(R.id.myRc);

        btnGetData = (Button) findViewById(R.id.btnGetData);


        myRc.setHasFixedSize(true);

        myRc.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false));


        AddMorePojo addMorePojo = new AddMorePojo();

        addMorePojo.setAddress("");

        addMorePojo.setUserName("");

        arrayList.add(addMorePojo);



        adapter = new AddMoreAdapter(this, arrayList);

        myRc.setAdapter(adapter);


        btnGetData.setOnClickListener(new View.OnClickListener() {

            @Override

            public void onClick(View view) {

                ArrayList<AddMorePojo> pojoArrayList = adapter.getArrayList();


                for (int i = 0; i < pojoArrayList.size(); i++) {


                    Log.e("Name " + i, pojoArrayList.get(i).getUserName() + "");

                    Log.e("Pass " + i, pojoArrayList.get(i).getPass() + "");

                    Log.e("PHONE " + i, pojoArrayList.get(i).getPhone() + "");

                    Log.e("Address " + i, pojoArrayList.get(i).getAddress() + "");

                }

            }

        });


    }

}

Activity.xml


<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:app="http://schemas.android.com/apk/res-auto"

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:orientation="vertical"

    tools:context="com.example.user33.workingtestapp.AddmoreActivity">


    <android.support.v7.widget.RecyclerView

        android:id="@+id/myRc"

        android:layout_width="match_parent"

        android:layout_height="wrap_content" />



    <Button

        android:id="@+id/btnGetData"

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:layout_alignParentBottom="true"

        android:text="get Data" />

</RelativeLayout>

pojo课


public class AddMorePojo {


    String userName, phone, pass, Address;


    public AddMorePojo() {

    }


    public String getUserName() {

        return userName;

    }


    public void setUserName(String userName) {

        this.userName = userName;

    }


    public String getPhone() {

        return phone;

    }


    public void setPhone(String phone) {

        this.phone = phone;

    }


    public String getPass() {

        return pass;

    }


    public void setPass(String pass) {

        this.pass = pass;

    }


    public String getAddress() {

        return Address;

    }


    public void setAddress(String address) {

        Address = address;

    }

}

适配器类


public class AddMoreAdapter extends RecyclerView.Adapter<AddMoreAdapter.ViewHolder> {

    Context context;

    ArrayList<AddMorePojo> arrayList;


    public AddMoreAdapter(Context context, ArrayList<AddMorePojo> arrayList) {

        this.context = context;

        this.arrayList = arrayList;

    }


    @Override

    public AddMoreAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {


        View view = LayoutInflater.from(context).inflate(R.layout.addmorelayout, parent, false);

        return new ViewHolder(view);

    }


    @Override

    public void onBindViewHolder(AddMoreAdapter.ViewHolder holder, int position) {


    }


    @Override

    public int getItemCount() {

        return arrayList.size();

    }


    public ArrayList<AddMorePojo> getArrayList()

    {

        return arrayList;

    }


    public class ViewHolder extends RecyclerView.ViewHolder {


        EditText edtName, edtPhone, edtPass, edtAdrress;


        public ViewHolder(View itemView) {

            super(itemView);


            edtName = itemView.findViewById(R.id.edtUname);

            edtPhone = itemView.findViewById(R.id.edtPhone);

            edtPass = itemView.findViewById(R.id.edtPass);

            edtAdrress = itemView.findViewById(R.id.edtAddress);


            edtName.addTextChangedListener(new TextWatcher() {

                @Override

                public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {


                }


                @Override

                public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {


                    AddMorePojo addMorePOJO = arrayList.get(getAdapterPosition());

                    addMorePOJO.setUserName(charSequence + "");

                    arrayList.set(getAdapterPosition(), addMorePOJO);



                }


                @Override

                public void afterTextChanged(Editable editable) {


                }

            });


            edtPhone.addTextChangedListener(new TextWatcher() {

                @Override

                public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {


                }


                @Override

                public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {


                    AddMorePojo addMorePOJO = arrayList.get(getAdapterPosition());

                    addMorePOJO.setPhone(charSequence + "");

                    arrayList.set(getAdapterPosition(), addMorePOJO);



                }


                @Override

                public void afterTextChanged(Editable editable) {


                }

            });

            edtPass.addTextChangedListener(new TextWatcher() {

                @Override

                public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {


                }


                @Override

                public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {


                    AddMorePojo addMorePOJO = arrayList.get(getAdapterPosition());

                    addMorePOJO.setPass(charSequence + "");

                    arrayList.set(getAdapterPosition(), addMorePOJO);



                }


                @Override

                public void afterTextChanged(Editable editable) {


                }

            });


            edtAdrress.addTextChangedListener(new TextWatcher() {

                @Override

                public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {


                }


                @Override

                public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {


                    AddMorePojo addMorePOJO = arrayList.get(getAdapterPosition());

                    addMorePOJO.setAddress(charSequence + "");

                    arrayList.set(getAdapterPosition(), addMorePOJO);



                }


                @Override

                public void afterTextChanged(Editable editable) {


                }

            });



        }

    }

}

适配器自定义布局


<?xml version="1.0" encoding="utf-8"?>

<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:app="http://schemas.android.com/apk/res-auto"

    android:layout_width="match_parent"

    android:layout_height="wrap_content"

    app:cardElevation="10dp"

    app:cardUseCompatPadding="true">


    <LinearLayout

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:orientation="vertical">


        <EditText

            android:id="@+id/edtUname"

            android:layout_width="match_parent"

            android:layout_height="wrap_content"

            android:hint="Enter User Name" />


        <EditText

            android:id="@+id/edtPass"

            android:layout_width="match_parent"

            android:layout_height="wrap_content"

            android:hint="********"

            android:imeOptions="actionNext"

            android:inputType="textPassword" />



        <EditText

            android:id="@+id/edtPhone"

            android:layout_width="match_parent"

            android:layout_height="wrap_content"

            android:hint="Enter Phone Number"

            android:imeOptions="actionNext"

            android:inputType="numberDecimal" />


        <EditText

            android:id="@+id/edtAddress"

            android:layout_width="match_parent"

            android:layout_height="wrap_content"

            android:hint="Enter Address"

            android:imeOptions="actionNext"

            android:inputType="text" />



    </LinearLayout>


</android.support.v7.widget.CardView>




查看完整回答
反对 回复 2019-12-06
?
喵喵时光机

很抱歉问您一些愚蠢的问题,xamarin中的语法和公共方法不同。安卓 所以我很困惑。请问我这三行内容分别是什么? AddMorePojo addMorePOJO = arrayList.get(getAdapterPosition()); addMorePOJO.setUserName(charSequence + ""); arrayList.set(getAdapterPosition(), addMorePOJO);

查看完整回答
反对 回复 2019-12-06

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信