Android 从listview中获取EditText、微调器和所选日期文本视图tex

Android 从listview中获取EditText、微调器和所选日期文本视图tex,android,android-layout,listview,android-listview,Android,Android Layout,Listview,Android Listview,我正在写一份申请书。我正在为用户输入创建动态布局,如(姓名、年龄、出生日期),并试图通过listview创建此布局。 我可以创建布局,但当我尝试获取用户输入值时,没有显示任何内容,即使用户选择了他们的出生日期,listview的textview中也没有显示任何内容。即使我尝试显示此布局两次以上,也没有显示任何内容 请帮助我。如何检索用户键入的listview值并多次添加布局。 下面是我的适配器类: @Override public View getView(int position, Vie

我正在写一份申请书。我正在为用户输入创建动态布局,如(姓名、年龄、出生日期),并试图通过listview创建此布局。 我可以创建布局,但当我尝试获取用户输入值时,没有显示任何内容,即使用户选择了他们的出生日期,listview的textview中也没有显示任何内容。即使我尝试显示此布局两次以上,也没有显示任何内容

请帮助我。如何检索用户键入的listview值并多次添加布局。 下面是我的适配器类:

@Override
  public View getView(int position, View convertView,   ViewGroup parent) {

       holder=null;
        LayoutInflater inflater=(LayoutInflater)    context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
        if(convertView==null){
            convertView=inflater.inflate(R.layout.test_travller,null);

            holder=new ViewHolder();

            holder.passengerType=(TextView) convertView.findViewById        (R.id.Adult_Detail);
            holder.Title=(Spinner) convertView.findViewById (R.id.Adult_Title);
            holder.Adult_firstName=(EditText) convertView.findViewById  (R.id.Adult_FirstName);
            holder.MiddleName=(EditText) convertView.findViewById   (R.id.Adult_Middlename);
            holder.Lastname=(EditText) convertView.findViewById (R.id.Adult_Lastname);
            holder.DOB=(TextView) convertView.findViewById  (R.id.Adult_DOB);
            holder.saveButton = (Button) convertView.findViewById   (R.id.saveButton);

            convertView.setTag(holder);
        }else {
            holder = (ViewHolder) convertView.getTag();

        }
        holder.DOB.setText(new StringBuilder().append(year).append  (month).append(date));
      //  holder.passengerType.setText(Details.get  (position).getPassengerType());
       // holder.Title.setAdapter(holder.spinneradapter.getTitle_adapter    ());

        holder.Adult_firstName.setTag(position);
      /* holder.Adult_firstName.setOnClickListener(new  View.OnClickListener()      {
        @Override
        public void onClick(View v) {
            String firstName = holder.Adult_firstName.getText().toString                ();
            Log.i("onclick",firstName);
        }
    });*/

       /* holder.Title.setOnItemClickListener(new   AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int   position, long id) {
                holder.spinneradapter.setAdult_Title(position);
            }
        });*/

            holder.DOB.setOnClickListener(new View.OnClickListener() {
          @Override
           public void onClick(View v) {
        DatePickerDialog datepickerdialog=new DatePickerDialog  (context,datepicker,year,month,date);
        datepickerdialog.show();

                }
            });

        holder.saveButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String firstName = holder.Adult_firstName.getText   ().toString();
                String middleName=holder.MiddleName.getText().toString();
                String lastName= holder.Lastname.getText().toString();
                String spinner_value=holder.Title.getSelectedItem   ().toString();

                passengerDetails.add(new PassengerDetails       (spinner_value,firstName,middleName,lastName,""));

                Log.i("values",""+firstName+middleName+lastName         +spinner_value);
            }
        });




        return convertView;
         }

             private DatePickerDialog.OnDateSetListener datepicker=new      DatePickerDialog.OnDateSetListener() {
        @Override
        public void onDateSet(DatePicker view, int selectedyear, int        monthOfYear, int dayOfMonth) {
            calendar.set(Calendar.YEAR,selectedyear);
            calendar.set(Calendar.MONTH,monthOfYear);
            calendar.set(Calendar.DATE,dayOfMonth);
            year=calendar.get(Calendar.YEAR);
            month=calendar.get(Calendar.MONTH);
            date=calendar.get(Calendar.DATE);


                   }
         };
        public  class ViewHolder{
 //  PassengerDetails spinneradapter;
   TextView passengerType,DOB;
   Spinner Title;
   EditText Adult_firstName,Lastname,MiddleName;
   Button saveButton;

     }
@覆盖
公共视图getView(int位置、视图转换视图、视图组父视图){
holder=null;
LayoutInflater充气器=(LayoutInflater)context.getSystemService(Activity.LAYOUT\u充气器\u SERVICE);
if(convertView==null){
convertView=充气机充气(右布局测试,空);
holder=新的ViewHolder();
holder.passengerType=(TextView)convertView.findViewById(R.id.成人_详细信息);
holder.Title=(微调器)convertView.findViewById(R.id.成人标题);
holder.maintal_firstName=(EditText)convertView.findViewById(R.id.maintal_firstName);
holder.MiddleName=(EditText)convertView.findViewById(R.id.成人_MiddleName);
holder.Lastname=(EditText)convertView.findViewById(R.id.成人_Lastname);
holder.DOB=(TextView)convertView.findViewById(R.id.成人\ u DOB);
holder.saveButton=(Button)convertView.findViewById(R.id.saveButton);
convertView.setTag(支架);
}否则{
holder=(ViewHolder)convertView.getTag();
}
holder.DOB.setText(新的StringBuilder().append(年)。append(月)。append(日期));
//holder.passengerType.setText(Details.get(position.getPassengerType());
//holder.Title.setAdapter(holder.spinneradapter.getTitle_adapter());
持有者。成人姓名。setTag(位置);
/*holder.maintal\u firstName.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
String firstName=holder.成人_firstName.getText().toString();
Log.i(“onclick”,firstName);
}
});*/
/*holder.Title.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
固定器。旋转适配器。设置成人职务(职位);
}
});*/
holder.DOB.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
DatePickerDialog DatePickerDialog=新的DatePickerDialog(上下文、日期选择器、年、月、日期);
datepickerdialog.show();
}
});
holder.saveButton.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
String firstName=holder.成人_firstName.getText().toString();
字符串middleName=holder.middleName.getText().toString();
字符串lastName=holder.lastName.getText().toString();
字符串微调器_value=holder.Title.getSelectedItem().toString();
添加(新的passengerDetails(spinner_值,firstName,middleName,lastName,“”);
Log.i(“值”,“”+firstName+middleName+lastName+spinner\u值);
}
});
返回视图;
}
私有DatePickerDialog.OnDateSetListener datepicker=new DatePickerDialog.OnDateSetListener(){
@凌驾
public void onDateSet(日期选择器视图,int selectedyear,int monthOfYear,int dayOfMonth){
calendar.set(calendar.YEAR,selectedyear);
日历.设置(日历.月,月,年);
calendar.set(calendar.DATE,dayOfMonth);
year=calendar.get(calendar.year);
month=calendar.get(calendar.month);
date=calendar.get(calendar.date);
}
};
公共类视图持有者{
//乘客尾纺纱机;
TextView乘客类型,DOB;
微调器标题;
EditText成人姓名、姓氏、中间名;
按钮保存按钮;
}
我的主课呢

 public class Traveller_Details extends AppCompatActivity {
 Toolbar traveller_toolbar;
Context context=this;
 AlertDialog dialog;
   EditText Adult_EDText,Child_EDText,Mobile_EDText,EmailEDText;
    String Firstname;
   Button call,ConfirmBooking;
   List<String> Child;
    Search_flights search_flights=Search_flights.getSearch_flights();
   int Num_of_Passengers;
    PassengerDetails passeneger;
    ListView Passengers;
   List<String> passengerDetails;
   @Override
   protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.traveller_details);

               Num_of_Passengers=search_flights.getAdult()+search_flights.getChild()+search_flights.getInfant();

     Passengers=(ListView) findViewById(R.id.Passenger_Detail_List);


    passengerDetails = new ArrayList<>();
    for(int i=0;i<4;i++) {
        passengerDetails.add("traveller1");

    }
     Passenger_DetailAdapter pdAdapter = new Passenger_DetailAdapter(this,    passengerDetails);

  Passengers.setAdapter(pdAdapter);
public class Traveller\u详细信息扩展活动{
工具条移动工具条;
上下文=这个;
警报对话框;
EditText成人文本、儿童文本、手机文本、电子邮件文本;
字符串名;
按钮呼叫,确认预订;
列出儿童;
Search_flights Search_flights=Search_flights.getSearch_flights();
国际旅客人数;
旅客详情旅客;
列表视图乘客;
列出乘客详情;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(右布局、旅行者详细信息);
乘客数量=搜索航班。Get成人()+搜索航班。getChild()+搜索航班。GetBaby();
乘客=(列表视图)findViewById(R.id.乘客详细信息列表);
passengerDetails=新的ArrayList();

对于(int i=0;i请添加holder类,需要主活动类holder类。下面是一个可能有帮助的示例:请检查我的编辑问题。我知道如何使用textview和按钮创建自定义listview。但是我有EditText、spinner和selectdate作为布局。我在获取用户选择的所有这些值时遇到了麻烦