java希望保留我在编辑访问页面时选择的数据
我有屏幕访问,它有来自spinner API的spinner数据。我想编辑和更改数据,但当我执行编辑时,它不会显示特定列的任何数据。它没有保留价值。请帮助我如何继续
package com.example.demoprojects;
import 安卓x.appcompat.app.AppCompatActivity;
import 安卓x.fragment.app.DialogFragment;
import 安卓.annotation.SuppressLint;
import 安卓.app.DatePickerDialog;
import 安卓.app.Dialog;
import 安卓.app.TimePickerDialog;
import 安卓.content.Context;
import 安卓.content.Intent;
import 安卓.os.AsyncTask;
import 安卓.os.Bundle;
import 安卓.os.Handler;
import 安卓.text.Editable;
import 安卓.text.TextWatcher;
import 安卓.text.format.DateFormat;
import 安卓.util.Log;
import 安卓.view.View;
import 安卓.widget.AdapterView;
import 安卓.widget.ArrayAdapter;
import 安卓.widget.DatePicker;
import 安卓.widget.EditText;
import 安卓.widget.ImageView;
import 安卓.widget.Spinner;
import 安卓.widget.TextView;
import 安卓.widget.TimePicker;
import 安卓.widget.Toast;
import com.example.demoprojects.extra.Constant;
import com.example.demoprojects.extra.SessionManager;
import com.example.demoprojects.extra.ViewDialog;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.text.DateFormatSymbols;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;
public class AddVisitsActivity extends AppCompatActivity {
EditText edt_customer_name, edt_subject, edtDescription;
Spinner spinnerPurpose;
ViewDialog viewDialog;
SessionManager sessionManager;
String value, categoty = "Select Purpose", categoryid;
HashMap<String, String> purposeHashCategory = new HashMap<String, String>();
List<String> purposeCategories = new ArrayList<String>();
ArrayAdapter<String> purposeDataAdapter;
TextView txt_dates;
TextView txt_end_dates;
static TextView start_time;
static TextView end_time;
int currentItem = 0;
ImageView back, imgSubmit;
String custId, custName, address;
String editCustName, editCustId, editVisitDate, editStartTime,
editEndTime, editPurpose, editPurposeId, editDescription;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add_visits);
edt_customer_name = findViewById(R.id.edt_customer_name);
spinnerPurpose = findViewById(R.id.spinnerPurpose);
txt_dates = findViewById(R.id.txt_dates);
txt_end_dates = findViewById(R.id.txt_end_dates);
start_time = findViewById(R.id.start_time);
end_time = findViewById(R.id.end_time);
edt_subject = findViewById(R.id.edt_subject);
back = findViewById(R.id.back);
imgSubmit = findViewById(R.id.imgSubmit);
edtDescription = findViewById(R.id.edtDescription);
viewDialog = new ViewDialog(this);
sessionManager = new SessionManager(this);
back.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onBackPressed();
}
});
edt_customer_name.setOnClickListener(new View.OnClickListener() {I want to edit the
@Override
public void onClick(View v) {
Intent intent = new Intent(getApplicationContext(), SearchCustomerActivity.class);
startActivity(intent);
}
});
showCurrentdate();
showCurrentTime();
txt_dates.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
showDate(AddVisitsActivity.this, txt_dates);
}
});
txt_end_dates.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
showDate(AddVisitsActivity.this, txt_end_dates);
}
});
start_time.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
TimePickerFragment timePickerFragment = new TimePickerFragment();
timePickerFragment.show(getSupportFragmentManager(), "TimePicker");
}
});
end_time.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
TimePickerFragments timePickerFragment = new TimePickerFragments();
timePickerFragment.show(getSupportFragmentManager(), "TimePicker");
}
});
if (getIntent().getStringExtra("customerName") != null || getIntent().getStringExtra("customerId") != null) {
editCustName = getIntent().getStringExtra("customerName");
editCustId = getIntent().getStringExtra("customerId");
editVisitDate = getIntent().getStringExtra("visitDate");
editStartTime = getIntent().getStringExtra("startTime");
editEndTime = getIntent().getStringExtra("endTime");
editPurpose = getIntent().getStringExtra("purpose");
editPurposeId = getIntent().getStringExtra("purposeId");
editDescription = getIntent().getStringExtra("description");
edt_customer_name.setText(editCustName);
// spinnerPurpose.setSelection(purposeCategories.indexOf(editPurposeId), true);//here is the problem
txt_dates.setText(editVisitDate);
start_time.setText(editStartTime);
end_time.setText(editEndTime);
edt_subject.setText(editPurpose);
edtDescription.setText(editDescription);
Log.d("sskksk",editPurposeId);
}
new getPurposeList().execute();
spinnerPurpose.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent,l̥ View view, int position, long id) {
categoty = spinnerPurpose.getItemAtPosition(spinnerPurpose.getSelectedItemPosition()).toString();
categoryid = purposeHashCategory.get(categoty);
Log.d("CheckSpinner", categoty);
if (currentItem == position) {
edt_subject.setHint("Subject");
return; //do nothing
} else {
edt_subject.setText(categoty);
//write your code here
}
currentItem = position;
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
if (getIntent().getStringExtra("custId") != null || getIntent().getStringExtra("custName") != null) {
custId = getIntent().getStringExtra("custId");
custName = getIntent().getStringExtra("custName");
edt_customer_name.setText(custName);
Log.d("custName", custName);
} else {
Log.d("dkdkkd", "nothing");
}
imgSubmit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (edt_customer_name.getText().length() == 0) {
Toast.makeText(AddVisitsActivity.this, "Enter Customer Name", Toast.LENGTH_SHORT).show();
} else if (categoty.equalsIgnoreCase("Select Purpose")) {
Toast.makeText(AddVisitsActivity.this, "Select Purpose", Toast.LENGTH_SHORT).show();
} else if (txt_dates.getText().length() == 0) {
Toast.makeText(AddVisitsActivity.this, "Select Start date", Toast.LENGTH_SHORT).show();
} else if (start_time.getText().length() == 0) {
Toast.makeText(AddVisitsActivity.this, "Select Start Time", Toast.LENGTH_SHORT).show();
} else if (end_time.getText().length() == 0) {
Toast.makeText(AddVisitsActivity.this, "Select End Time", Toast.LENGTH_SHORT).show();
} else if (edt_subject.getText().length() == 0) {
Toast.makeText(AddVisitsActivity.this, "Select Subject", Toast.LENGTH_SHORT).show();
} else {
new AddVisits().execute();
}
}
});
}
public static void showDate(final Context context, final TextView textView) {
final Calendar calendar = Calendar.getInstance();
int yy = calendar.get(Calendar.YEAR);
int mm = calendar.get(Calendar.MONTH);
int dd = calendar.get(Calendar.DAY_OF_MONTH);
DatePickerDialog datePicker = new DatePickerDialog(context, new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
String[] mons = new DateFormatSymbols(Locale.).getShortMonths();
String mName = mons[mm];
String date = String.valueOf(dayOfMonth) + " " + String.valueOf(mName)
+ " " + String.valueOf(year);
textView.setText(date);
Log.d("djkjiksd", date);
}
}, yy, mm, dd);
datePicker.show();
}
public class getPurposeList extends AsyncTask<String, String, String> {
protected void onPreExecute() {
}
@SuppressLint("WrongThread")
@Override
protected String doInBackground(String... params) {
ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("auth_key", sessionManager.getAuth_key()));
try {
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(Constant.purpose_list);
// httppost.setHeader("X-API-KEY", "admin@123");
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
value = EntityUtils.toString(response.getEntity());
Log.d("loginn", "In the try Loop" + value);
} catch (Exception e) {
Log.d("userlogin", "Error in http connection " + e.toString());
}
return value;
}
protected void onPostExecute(String result) {
super.onPostExecute(result);
purposeCategories.clear();
try {
Log.d("gdfsgdfg", result);
JSONArray array = new JSONArray(result);
if (array.length() > 0) {
for (int j = 0; j < array.length(); j++) {
JSONObject object = array.getJSONObject(j);
String purpose = object.getString("purpose");
String id = object.getString("id");
purposeCategories.add(purpose);
purposeHashCategory.put(purpose, id);
}
purposeCategories.add(0, "Select Purpose");
purposeDataAdapter = new ArrayAdapter<String>(AddVisitsActivity.this, R.layout.purpose_layout, purposeCategories);
purposeDataAdapter.setDropDownViewResource(R.layout.purpose_dropdown_layout);
spinnerPurpose.setAdapter(purposeDataAdapter);
} else {
Toast.makeText(AddVisitsActivity.this, "No Data for this search",
Toast.LENGTH_LONG).show();
}
} catch (JSONException e) {
Log.d("djkfnm", e.toString());
e.printStackTrace();
}}}
public class AddVisits extends AsyncTask<String, String, String> {
protected void onPreExecute() {
}
@SuppressLint("WrongThread")
@Override
protected String doInBackground(String... params) {
ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("user_id", sessionManager.getUserID()));
nameValuePairs.add(new BasicNameValuePair("auth_key", sessionManager.getAuth_key()));
nameValuePairs.add(new BasicNameValuePair("customername", custId));
nameValuePairs.add(new BasicNameValuePair("selectpurpose", categoryid));
nameValuePairs.add(new BasicNameValuePair("startdate", txt_dates.getText().toString()));
nameValuePairs.add(new BasicNameValuePair("starttime", start_time.getText().toString()));
nameValuePairs.add(new BasicNameValuePair("endtime", end_time.getText().toString()));
nameValuePairs.add(new BasicNameValuePair("subject", edt_subject.getText().toString()));
nameValuePairs.add(new BasicNameValuePair("description", edtDescription.getText().toString()));
nameValuePairs.add(new BasicNameValuePair("address", sessionManager.getAddress()));
try {
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(Constant.add_visit);
// httppost.setHeader("X-API-KEY", "admin@123");
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
value = EntityUtils.toString(response.getEntity());
Log.d("AddVisitsa", "In the try Loop" + value);
} catch (Exception e) {
Log.d("AddVisitsss", "Error in http connection " + e.toString());
}
return value;
}
protected void onPostExecute(String result) {
super.onPostExecute(result);
try {
Log.d("afdsfga", result);
JSONObject jsonObject = new JSONObject(result);
String status = jsonObject.getString("status");
if (status.equalsIgnoreCase("success")) {
String message = jsonObject.getString("message");
Toast.makeText(AddVisitsActivity.this, message, Toast.LENGTH_SHORT).show();
Intent intent = new Intent(getApplicationContext(), DashBoard.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
finish();
}
} catch (Exception e) {
Log.d("MateriralDesign", e.toString());
}}}
public void showCurrentdate() {
SimpleDateFormat format = new SimpleDateFormat("d");
String date = format.format(new Date());
if (date.endsWith("1") && !date.endsWith("11"))
format = new SimpleDateFormat("d MMMM yyyy");
else if (date.endsWith("2") && !date.endsWith("12"))
format = new SimpleDateFormat(" d MMMM yyyy");
else if (date.endsWith("3") && !date.endsWith("13"))
format = new SimpleDateFormat(" d MMMM yyyy");
else
format = new SimpleDateFormat(" d MMMM yyyy");
String startDate = format.format(new Date());
String endDate = format.format(new Date());
txt_dates.setText(startDate);
txt_end_dates.setText(endDate);
}
public void showCurrentTime() {
Date dt = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("hh:mm aa");
String startTime = sdf.format(dt);
String endTime = sdf.format(dt);
start_time.setText(startTime);
try {
Date date = new Date();
date = sdf.parse(startTime);
final Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.HOUR, 1);
Log.d("sdkljfdlskjf", sdf.format(calendar.getTime()));
end_time.setText(sdf.format(calendar.getTime()));
} catch (ParseException e) {
e.printStackTrace();
}
}
public static class TimePickerFragment extends DialogFragment
implements TimePickerDialog.OnTimeSetListener {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
// Use the current time as the default values for the picker
final Calendar c = Calendar.getInstance();
int hour = c.get(Calendar.HOUR);
int minute = c.get(Calendar.MINUTE);
// Create a new instance of TimePickerDialog and return it
return new TimePickerDialog(getActivity(), this, hour, minute,
DateFormat.is24HourFormat(getActivity()));
}
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
Calendar calendar = Calendar.getInstance();
calendar.set(0, 0, 0, hourOfDay, minute);
start_time.setText((String) DateFormat.format("hh:mm aaa", calendar));
}
}
public static class TimePickerFragments extends DialogFragment
implements TimePickerDialog.OnTimeSetListener {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
// Use the current time as the default values for the picker
final Calendar c = Calendar.getInstance();
int hour = c.get(Calendar.HOUR);
int minute = c.get(Calendar.MINUTE);
// Create a new instance of TimePickerDialog and return it
return new TimePickerDialog(getActivity(), this, hour, minute,
DateFormat.is24HourFormat(getActivity()));
}
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
Calendar calendar = Calendar.getInstance();
calendar.set(0, 0, 0, hourOfDay, minute);
end_time.setText((String) DateFormat.format("hh:mm aaa", calendar));
}
}
}
我想编辑访问列表。但我必须设置与我之前选择的相同的数据
case R.id.edit_visit_relative:
Intent intent = new Intent(getApplicationContext(), AddVisitsActivity.class);
intent.putExtra("customerName", custName);
intent.putExtra("customerId", custId);
intent.putExtra("visitDate", visitDate);
intent.putExtra("startTime", startTime);
intent.putExtra("endTime", endTime);
intent.putExtra("purpose", purpose);
intent.putExtra("purposeId", purposeId);
intent.putExtra("description", description);
startActivity(intent);
break;
共 (0) 个答案