gpt4 book ai didi

java - 如何更改 ListView 的顺序

转载 作者:行者123 更新时间:2023-12-01 17:45:10 25 4
gpt4 key购买 nike

我有一个 ListView ,它从 Firebase 获取数据,问题是它显示 ListView 底部添加的最后一个元素和顶部的旧元素,我正在尝试更改顺序。

这是我的 Activity 代码:

package com.example.appcamping.Gestion;


public class EnviarMostrarGastos extends AppCompatActivity {

ListView listview;
ArrayList<String> arrayList = new ArrayList<>();
ArrayAdapter<String> arrayAdapter;
Module2 module2;
private EditText mEditPrecio;
private EditText mEditNombreGasto;
private DatabaseReference mDatabaseGastos;
private Button mEnviarGastos;
private String mFechaGasto;
//----------------MOSTRAR GASTOS
private DatabaseReference databaseReference;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_enviar_mostrar_gastos);

mFechaGasto = new Date().toString();
mEditNombreGasto = (EditText) findViewById(R.id.editNombreGasto);
mEditPrecio = (EditText) findViewById(R.id.editPrecio);
mDatabaseGastos = FirebaseDatabase.getInstance().getReference();
mEnviarGastos = findViewById(R.id.btnEnviarGastos);
mEnviarGastos.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String key = mDatabaseGastos.child("Gastos").push().getKey();
String nombregasto = mEditNombreGasto.getText().toString();
String precio = mEditPrecio.getText().toString();
String fechagasto = mFechaGasto;

mDatabaseGastos.child("Gastos").child(key).child("NombreGasto").setValue(nombregasto);
mDatabaseGastos.child("Gastos").child(key).child("Precio").setValue(precio);
mDatabaseGastos.child("Gastos").child(key).child("FechaGasto").setValue(fechagasto);
}
});

//-----------------MOSTRAR GASTOS--------------
databaseReference= FirebaseDatabase.getInstance().getReference("Gastos");
listview=(ListView) findViewById(R.id.listMostrarGastos);
arrayAdapter= new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, arrayList);
listview.setAdapter(arrayAdapter);
databaseReference.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
String value=dataSnapshot.getValue(Gastos.class).toString();
arrayList.add(value);
arrayAdapter.notifyDataSetChanged();
}

@Override
public void onChildChanged(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {

}

@Override
public void onChildRemoved(@NonNull DataSnapshot dataSnapshot) {

}

@Override
public void onChildMoved(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {

}

@Override
public void onCancelled(@NonNull DatabaseError databaseError) {

}
});

}

}

这是我的 xml: enter image description here

这就是显示元素的方式:enter image description here

最佳答案

如果您想颠倒顺序,可以在adapter.notifydatasetchanged()之前使用以下代码

Collections.reverse(arrayList);

关于java - 如何更改 ListView 的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60876196/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com