Mit hashMaps in benutzerdefinierten Adapter für das listView-Steuerelement
Folgende code ist der code, ich bin zurzeit für ein listView:
private class Asyncprojectlist extends AsyncTask<Void, Void, Void>{
JSONArray JSar;
JSONObject JSob;
String project_title, project_sector;
@Override
protected void onPreExecute() {
progressDialog = new ProgressDialog(Allprojects.this);
progressDialog.setCancelable(false);
progressDialog.setMessage("Loading...");
progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
progressDialog.setProgress(0);
progressDialog.show();
}
@Override
protected Void doInBackground(Void... params) {
UserFunctions user = new UserFunctions();
JSob = user.allprojects();
try {
JSar = JSob.getJSONArray("data");
} catch (JSONException e1) {
e1.printStackTrace();
}
for(int i=0; i<JSar.length(); i++){
try {
JSONObject newobj = JSar.getJSONObject(i);
project_title = newobj.getString("title");
project_sector = newobj.getString("sector");
HashMap<String, String> single = new HashMap<String, String>();
single.put("title", project_title);
single.put("sector", project_sector);
all_list.add(single);
} catch (JSONException e) {
e.printStackTrace();
}
}
// Log.i("json object", JSar.toString());
return null;
}
@Override
protected void onPostExecute(Void result) {
ListAdapter adapter = new SimpleAdapter(getApplicationContext(), all_list, R.layout.projectlist_frame,
new String[]{"title","sector"}, new int[]{R.id.projecttitle, R.id.projectsector});
setListAdapter(adapter);
progressDialog.dismiss();
list = getListView();
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View viewClicked,
int position, long id) {
Intent toindividual = new Intent(Allprojects.this, Individual_project.class);
try {
toindividual.putExtra("nid", JSar.getJSONObject(position).getString("id"));
startActivity(toindividual);
} catch (JSONException e) {
e.printStackTrace();
}
}
});
}
Hier ist eine api aufgerufen, um die Daten abrufen und die all_list
ist ein ArrayList<HashMap<>>
wo es verwendet wird, durch die SimpleAdapter
Werte wie projectTitle
und projectStatus
auf die listView
layout. Alles funktioniert hier perfekt. Aber ich bin eine harte Zeit der Umsetzung der checkBox
Zuhörer, die in die listView layout. Ich glaube, dass eine benutzerdefinierte adapter benötigt wird. In meinem Versuch zum erstellen einer benutzerdefinierten adapter ich konnte nicht kommen, mit eine funktionierenden code. Bitte helfen Sie bei der Implementierung einer benutzerdefinierten adapter, so dass der Listenansicht können Sie die checkBox CheckChangeListener
umgesetzt.
InformationsquelleAutor Rakeeb Rajbhandari | 2013-08-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
können Sie erstellen eine custome adapter für Sie. In diesem adapter müssen Sie
CheckChangeListener
aufcheckbox
imgetView
Methode.Können Sie auch überprüfen, diese link1,link2 für mehr details
Können Sie hashMap für custome-adapter und setzen Sie den Wert in
UI
wie folgtüberprüfen Sie aktualisierte Antwort..
danke ... aber ich habe noch eine andere Frage ... das gleiche gilt in der hashMaps, wenn ich, fügen Sie ein Kontrollkästchen, klicken Sie auf listener ?
es kann nur text setzen von Kontrollkästchen aus hashMap Daten und setzen
onCheckedChanged
Zuhörer ingetView();
was empfehlen Sie für eine ArrayList<HashMap<String,String>>
InformationsquelleAutor Mukesh Kumar Singh
versuchen Sie, Liste-adapter mit
statt
InformationsquelleAutor Amandeep Singh