Comment faire pour Actualiser la Coutume Adaptateur Liste instantanément dans Android?
Je suis en train d'essayer d'obtenir un titre de liste, Ce que je veux, c'est que quand je tape dans l'Edittext sur la page d'accueil, puis ajouter dans la liste, après avoir cliqué sur le bouton Ok. Droit maintenant, je ne sais pas où mettre mon actualisation de la méthode que j'appelle de customAdapter classe sur la page d'Accueil de l'Activité.
Veuillez consulter ma page d'Accueil Activité:
public class Main_Activity extends Activity implements OnClickListener {
Button ok;
EditText addTasklist;
ListView list_tasklistname;
TodoTask_Database db;
CustomAdapter cAdapter;
List<Tasks> list = new ArrayList<Tasks>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_layout);
ok = (Button)findViewById(R.id.add);
ok.setOnClickListener(this);
list_tasklistname = (ListView)findViewById(R.id.listview);
db = new TodoTask_Database(getApplicationContext());
list = db.getAllTaskList();
CustomAdapter adapter = new CustomAdapter(Main_Activity.this, R.layout.tasklist_row, list);
list_tasklistname.setAdapter(adapter);
/*list_tasklistname.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View v, int position,
long id) {
}
});*/
db.close();
}
}
@Override
public void onClick(View v) {
switch(v.getId()) {
case R.id.add:
addTasklist = (EditText)findViewById(R.id.addTasklist);
if(addTasklist!=null) {
String addtasktitle = addTasklist.getText().toString();
db = new TodoTask_Database(getApplicationContext());
db.addTaskList(addtasktitle);
}
break;
}
}
}
Adaptateur Personnalisé:
public class CustomAdapter extends ArrayAdapter<Tasks> {
private List<Tasks> dataitem;
private Activity activity;
public CustomAdapter(Activity a, int textViewResourceId, List<Tasks> items) {
super(a, textViewResourceId, items);
this.dataitem = items;
this.activity = a;
}
public static class ViewHolder{
public TextView tasklistTitle;
public TextView createdDate;
public CheckBox completedflag;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
ViewHolder holder;
if (v == null) {
LayoutInflater vi =
(LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.tasklist_row, null);
holder = new ViewHolder();
holder.tasklistTitle = (TextView) v.findViewById(R.id.tasklistTitle);
holder.createdDate = (TextView) v.findViewById(R.id.createdDate);
holder.completedflag = (CheckBox) v.findViewById(R.id.completedflag);
v.setTag(holder);
}
else
holder=(ViewHolder)v.getTag();
final Tasks custom = dataitem.get(position);
if (custom != null) {
holder.tasklistTitle.setText(custom.getTaskListTitle());
holder.createdDate.setText(custom.getTaskListCreated());
holder.completedflag.setText(custom.getTaskListCompletedFlag());
}
return v;
}
//refresh Adapter Method calling in Homepage Activity
public synchronized void refresAdapter(List<Tasks> dataitems) {
dataitem.clear();
dataitem.addAll(dataitems);
notifyDataSetChanged();
}
}
appel
adapter.notifyDatasetChanged()
pour actualiser la liste.OriginalL'auteur Shweta | 2013-07-03
Vous devez vous connecter pour publier un commentaire.
Dans
onclick
méthode, vous pouvez appeler votre méthode d'actualisationrefresAdapter(List<Tasks> dataitems)
aprèsdb.addTaskList(addtasktitle);
déclaration.Ou tout simplement vous pouvez écrire
adapter.notifyDataSetChanged()
après cettedb.addTaskList(addtasktitle)
; déclarationaprès la carte.notifyDataSetChanged(); mettre list_tasklistname.setAdapter(adapter); n il va travailler pour vous. gd lc 🙂
OriginalL'auteur Riteish Jaiswal
appeler cette méthode
adapter.notifyDatasetChanged()
si vous voulez le faire pour la navigation de tiroir, de le faire dans
draweropen
méthodeOriginalL'auteur Sams Prudhvi