问题描述
我在Ticks
中有Private Sub TextBox1_TextChanged(sender As Object,e As EventArgs) Handles TextBox1.TextChanged
'Start/restart the Timer.
Timer1.Stop()
Timer1.Start()
End Sub
Private Sub Timer1_Tick(sender As Object,e As EventArgs) Handles Timer1.Tick
Timer1.Stop()
'Perform the filtering.
BindingSource1.Filter = $"ColumnName LIKE '{TextBox1.Text}*'"
End Sub
,其中我正在使用Listview
设置数据,当我使用对话框删除数据时,值将在Fragment
中复制。我不知道该怎么办,在对话框中单击删除按钮时,我想过要刷新ArrayAdapter
,但我不知道该怎么做。我是Android新手,请告诉我解决这个问题。这是我的代码。
教师名单
listview
这是我的对话框代码,我叫fragment
中带有{。{1}}的{{1}}框。
MyDailogFragment
public class listofFaculty extends Fragment {
DatabaseReference ref;
ListView listview;
List<String> store;
List<String> UserID;
String[] faculty_list;
String a;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ref = FirebaseDatabase.getInstance().getReference("Faculty");
}
@Override
public View onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState) {
// Inflate the layout for this fragment
final View root = inflater.inflate(R.layout.fragment_list_of_faculty,container,false);
listview = root.findViewById(R.id.lv);
store =new ArrayList<>();
UserID =new ArrayList<>();
ref.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for(DataSnapshot postsap : dataSnapshot.getChildren() ) {
DataSnapshot data = postsap.child("name");
if(data.exists()){
a = data.getValue().toString();
}
store.add(a);
String Id = postsap.getKey();
UserID.add(Id);
}
faculty_list = new String[store.size()];
for(int i=0;i<faculty_list.length;i++){
faculty_list[i] =store.get(i);
}
if (getActivity() != null) {
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getContext(),android.R.layout.simple_spinner_item,faculty_list);
listview.setAdapter(adapter);
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
listview.setonItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent,View view,int position,long id) {
Intent i = new Intent(getContext(),Faculty.class);
i.putExtra("User_Id",UserID.get(position));
startActivity(i);
}
});
listview.setonItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent,long id) {
String name = faculty_list[position];
Toast.makeText(getContext(),""+UserID.get(position),Toast.LENGTH_SHORT).show();
DialogFragment dialogFragment =new MyDailogFragment();
Bundle bundle =new Bundle();
bundle.putString("Name",name);
bundle.putString("Id",UserID.get(position));
dialogFragment.setArguments(bundle);
dialogFragment.show(getChildFragmentManager(),"missiles");
return true;
}
});
return root;
}
}
解决方法
具有新值时必须清除旧数据
ref.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
store.clear();
for(DataSnapshot postsap : dataSnapshot.getChildren() ){
DataSnapshot data = postsap.child("name");
if(data.exists()){
a = data.getValue().toString();
}
store.add(a);
String Id = postsap.getKey();
UserID.add(Id);
}
faculty_list = new String[store.size()];
for(int i=0;i<faculty_list.length;i++){
faculty_list[i] =store.get(i);
}
if (getActivity() != null) {
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getContext(),android.R.layout.simple_spinner_item,faculty_list);
listview.setAdapter(adapter);
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});