0
是指在项目按一下按钮列表视图,这是我的主类:无法使用notfydatasetchange的Android
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_lead, container, false);
prefs = getActivity().getSharedPreferences(AppConstants.LOGIN_PREFS,
Context.MODE_PRIVATE);
agentcode= prefs.getString(AppConstants.agentcode, "");
listview = (ListView) rootView.findViewById(R.id.listView);
new LeadsBackground().execute();
return rootView;
}
class LeadsBackground extends AsyncTask<Void, Void, Void> {
@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(getActivity());
pDialog.setTitle("Searching");
pDialog.setMessage("Please wait...");
pDialog.setCanceledOnTouchOutside(false);
pDialog.show();
super.onPreExecute();
}
@Override
protected Void doInBackground(Void... voids) {
try {
Response = JSONfunctions.getJSONfromURL(Constants.LeadsURl + "AgentCode=" + agentcode);
JSONArray _jsonarray = new JSONArray(Response);
for (int i = 0; i < _jsonarray.length(); i++) {
JSONObject _jsobject = _jsonarray.getJSONObject(i);
DataModel datamodel = new DataModel();
datamodel.setJobNumber(_jsobject.getString("JobNumber"));
datamodel.setPhoneNumber(_jsobject.getString("PhoneNumber"));
datamodel.setCustomerName(_jsobject.getString("CustomerName"));
datamodel.setCustomerAddress(_jsobject.getString("CustomerAddress"));
datamodel.setCity(_jsobject.getString("City"));
datamodel.setPinCode(_jsobject.getString("PinCode"));
datamodel.setAppointmentDate(_jsobject.getString("AppointmentDate"));
datamodel.setAppointmentTime(_jsobject.getString("AppointmentTime"));
lstDataModel.add(datamodel);
}
} catch (JSONException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid);
ListViewAdapter listviewadapter = new ListViewAdapter(getActivity(), R.layout.leadslistitem,
lstDataModel,agentcode);
listview.setAdapter(listviewadapter);
pDialog.dismiss();
}
}
这是我的适配器类:
public class ListViewAdapter extends ArrayAdapter<DataModel> {
// Declare Variables
Context context;
LayoutInflater inflater;
List<DataModel> datamodel;
String response;
ProgressDialog pDialog;
// LeadsFragment leads;
String agentcode;
public ListViewAdapter(Context context, int resourceId,
List<DataModel> worldpopulationlist, String agentcode) {
super(context, resourceId, worldpopulationlist);
this.context = context;
this.datamodel = worldpopulationlist;
this.agentcode = agentcode;
inflater = LayoutInflater.from(context);
}
private class ViewHolder {
TextView JobNumberTextView;
TextView PhoneNumberTextView;
TextView NameTextView;
TextView AdressTextView;
TextView DateTextView;
ImageView acceptedbutton;
ImageView rejectedbutton;
}
@Override
public void notifyDataSetChanged() {
super.notifyDataSetChanged();
}
public View getView(final int position, View view, ViewGroup parent) {
final ViewHolder holder;
if (view == null) {
holder = new ViewHolder();
view = inflater.inflate(R.layout.leadslistitem, null);
//
holder.JobNumberTextView = (TextView) view.findViewById(R.id.textView1);
holder.PhoneNumberTextView = (TextView) view.findViewById(R.id.textView);
holder.NameTextView = (TextView) view.findViewById(R.id.textView3);
holder.AdressTextView = (TextView) view.findViewById(R.id.textView2);
holder.DateTextView = (TextView) view.findViewById(R.id.textView7);
holder.acceptedbutton = (ImageView) view.findViewById(R.id.imageButton2);
holder.rejectedbutton = (ImageView) view.findViewById(R.id.imageButton);
view.setTag(holder);
} else {
holder = (ViewHolder) view.getTag();
}
// Html.fromHtml("<b>Job No:</b> ")
String sourceString = "<b>" + "JobNo:" + "</b> ";
holder.JobNumberTextView.setText(Html.fromHtml(sourceString) + datamodel.get(position).getJobNumber());
holder.PhoneNumberTextView.setText(datamodel.get(position).getPhoneNumber());
holder.NameTextView.setText(Html.fromHtml("Name : ") + datamodel.get(position).getCustomerName());
holder.AdressTextView.setText(datamodel.get(position).getCustomerAddress() + "," + datamodel.get(position).getCity() +
"-" + datamodel.get(position).getPinCode());
holder.DateTextView.setText(String.valueOf(Funcations.ConvertDatetime(datamodel.get(position).getAppointmentDate(), datamodel.get(position).getAppointmentTime()))
);
// Capture position and set to the TextViews
holder.acceptedbutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
new AccepteRejectBackground().execute(datamodel.get(position).getJobNumber(), "true");
sendBroadcaset(true);
}
});
holder.rejectedbutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
new AccepteRejectBackground().execute(datamodel.get(position).getJobNumber(), "false");
sendBroadcaset(true);
}
});
return view;
}
class AccepteRejectBackground extends AsyncTask<String, String, Void> {
@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(context);
pDialog.setTitle("Searching");
pDialog.setMessage("Please wait...");
pDialog.setCanceledOnTouchOutside(false);
pDialog.show();
super.onPreExecute();
}
@Override
protected Void doInBackground(String... strings) {
response = HttpUtil.doGet(Constants.AcceptrejectURl + "AgentCode=" + agentcode + "&Jobid=" + strings[0] + "&response=" + strings[1]);
String url = Constants.AcceptrejectURl + "AgentCode=" + agentcode + "&Jobid=" + strings[0] + "&response=" + strings[1];
Log.e("Response", response);
return null;
}
@Override
protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid);
if (response.equalsIgnoreCase("1\n") || response.equals("1")) {
Toast.makeText(context, "OK", Toast.LENGTH_LONG).show();
} else {
Toast.makeText(context, "NOt OK", Toast.LENGTH_LONG).show();
}
pDialog.dismiss();
}
}
private void sendBroadcaset(boolean b) {
// TODO Auto-generated method stub
LocalBroadcastManager.getInstance(context).sendBroadcast(
new Intent("update_boolean_variable").putExtra("action", b));
}
}
我有两个按钮,接受和拒绝按钮,我想要刷新或更新列表视图按钮单击但我列表视图不更新,而我尝试使用notifydataset更改但无法刷新,而我从服务器获取数据从JSON格式接受按钮和拒绝按钮我必须发送参数true false并分别刷新listview请帮助我如何做到这一点
我希望你知道的。 “” (句号)和“,”(逗号),不是吗? ,2分是不值得编辑这个职位:-) – droidev