J'ai un listview que je veux utiliser avec un élément de liste personnalisé.comment répondre à adapter.notifyDataSetChanged()
l'élément de liste (list_item.xml):
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:hint="start time"
android:id="@+id/startTime"
android:layout_margin="10dp"/>
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:hint="finish time"
android:id="@+id/finishTime"
android:layout_margin="10dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/payment"
android:layout_margin="10dp"/>
</LinearLayout>
et la classe java:
private ListView listView;
private ArrayAdapter adapter;
private ArrayList shifts;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
listView = (ListView)findViewById(R.id.listview);
listView.setOnItemClickListener(this);
adapter = new ArrayAdapter(this, R.layout.list_item, shifts);
Ma question est, lorsque l'application commence à fonctionner, comment puis-je ajouter un nouvel élément de liste en shift (ArrayList), remplacez la méthode notifyDataSetChanged() sur l'adaptateur afin que la listview "rafraîchisse", puis définissez les textes d'édition dans l'élément de la liste avec les paramètres que je souhaite?
J'espère que je suis assez clair .. Merci beaucoup!
Vous n Pas besoin de surcharger notifyDataSetChanged(), l'adaptateur fera tout, il vous suffit de mettre à jour les données de votre adaptateur et d'appeler notifyDataSetChanged. – FWeigl
ok, alors comment puis-je faire un nouvel élément basé sur l'élément xml? –
Pour personnaliser la mise en page, vous devez utiliser un adaptateur personnalisé. Le ArrayAdapter est là en tant qu'utilitaire pour créer rapidement des éléments de liste texte standard. Vous pouvez créer votre propre classe en étendant BaseAdapter et partir de là. – RobCo