我有一个列表视图显示一个列表。所以在ListView的点击我有一个customDialog.In。我从用户采取一些值。所以希望一旦用户输入详细信息并单击确定按钮,然后我必须从列表视图中更新该项目的值,并且当列表视图的所有项目都已更新后,将其与之前的值进行比较以检查所有项目是否已更新或不能。帮助我在这我怎么能做到这一点在Android中更新ListView项的值
活动代码
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_iween_booking_page);
intent = getIntent();
isReturn = (Boolean) intent.getExtras().get("isReturn");
searchParam = (HashMap<String,String>) intent.getExtras().get("searchParam");
listView = (ListView) findViewById(R.id.passengerList);
emailId = (TextView)findViewById(R.id.emailid);
continuebooking = (ImageView)findViewById(R.id.continuebooking);
firstName= (EditText)findViewById(R.id.firstName);
lastName =(EditText)findViewById(R.id.LastName);
mobileNumber =(EditText)findViewById(R.id.mobileNumber);
setTittle();
if(searchParam.get("NoOfChild").equals("0") && searchParam.get("NoOfInfant").equals("0")&& searchParam.get("NoOfAdult").equals("1")){
} else {
passengerList = getPassengerList(passengerInfo);
showPassengerListView(passengerList);
}
continuebooking.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
if(searchParam.get("NoOfChild").equals("0") && searchParam.get("NoOfInfant").equals("0") && searchParam.get("NoOfAdult").equals("1")){
if(firstName.getText().toString().trim().equalsIgnoreCase("")){
firstName.setError("Enter FirstName");
}
if(lastName.getText().toString().trim().equalsIgnoreCase("")){
lastName.setError("Enter LastName");
}
if(mobileNumber.getText().toString().trim().equalsIgnoreCase("")){
mobileNumber.setError("Enter Mobile No.");
}
}else{
int count = listView.getAdapter().getCount();
listData = new String[count];
for (int i = 0; i < count; i++) {
listData[i] = listView.getAdapter().getItem(i).toString();
}
for(int i=0;i<listView.getAdapter().getCount();i++){
for(int j=0;j<count;j++){
if(listData[j]==listView.getAdapter().getItem(i).toString()){
Log.d("listData data", listView.getAdapter().getItem(i).toString());
// View v=listView.getChildAt(i);
// TextView tv=(TextView) v.findViewById(android.R.id.text1);
// tv.setError("Please change the data");
}
}
}
}
}
});
}
private void showPassengerListView(final String[] passengerList) {
adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, android.R.id.text1, passengerList);
listView.setAdapter(adapter);
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// int itemPosition = position;
// String itemValue = (String) listView.getItemAtPosition(position);
View v=listView.getChildAt(position);
TextView tv=(TextView) v.findViewById(android.R.id.text1);
tv.setError(null);
passengerInformationPopup(passengerList,position);
}
});
}
public void passengerInformationPopup(final String[] passengerList, final int position) {
final Dialog dialog= new Dialog(Test.this,R.style.Dialog_Fullscreen);
dialog.setContentView(R.layout.passenger_details_dialog);
final EditText firstNameDialog;
final EditText lastNameDialog;
ImageView continueBooking;
dateofBirth = (TextView)dialog.findViewById(R.id.dateofBirth);
firstNameDialog = (EditText)dialog.findViewById(R.id.firstName);
lastNameDialog =(EditText)dialog.findViewById(R.id.LastName);
continueBooking =(ImageView)dialog.findViewById(R.id.continuebooking);
if((passengerList[position].contains("Child"))|| (passengerList[position].contains("Infant"))){
dateofBirth.setVisibility(View.VISIBLE);
}else{
dateofBirth.setVisibility(View.GONE);
}
dateofBirth.setClickable(true);
dialog.show();
continueBooking.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
isSuccess= true;
if(firstNameDialog.getText().toString().trim().equalsIgnoreCase("")){
firstNameDialog.setError("Enter FirstName");
isSuccess= false;
}
if(lastNameDialog.getText().toString().trim().equalsIgnoreCase("")){
lastNameDialog.setError("Enter LastName");
isSuccess= false;
}
if((passengerList[position].contains("Child"))|| (passengerList[position].contains("Infant"))){
if(dateofBirth.getText().toString().trim().equalsIgnoreCase("")){
dateofBirth.setError("Date of Birth Can't be blank");
isSuccess= false;
}
}
if(isSuccess){
dialog.cancel();
View v=listView.getChildAt(position);
TextView tv= (TextView) v.findViewById(android.R.id.text1);
tv.setText(firstNameDialog.getText().toString().trim().toString()+" "+lastNameDialog.getText().toString().trim().toString());
}
}
});
}
passen gerInformationPopup功能我要更新ListView的。在对创建continueBooking我有项目价值,检查所有的项目是否被更新或不
Before Updation After Updation
贵的ListView行项目有什么看法? – Raghunandan
@Raghunandan它会像Adult1,Adult2,Child1.So的用户点击Adult1它将采取他的名字,然后在列表视图中,我必须更新Adult1到用户提供使用的名称。每个item.Once他clik完成按钮,然后我必须检查是否所有listview项目是否更新 – Developer
不清楚你可以发布你的列表视图 – Raghunandan