当前位置: 首页 > 知识库问答 >
问题:

如何使用按钮onClick从ListView中删除所有内容?

钱建本
2023-03-14

如何使用按钮onClick从ListView中删除所有内容?当我尝试“fullCourseList.clear();”时,我无法添加更多课程,只有再次访问页面后,页面才会刷新

import static com.example.diplom.MainActivity.fullCourseList;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;

import android.widget.ArrayAdapter;
import android.widget.ListView;

import com.example.diplom.model.Course;
import com.example.diplom.model.Order;

import java.util.ArrayList;
import java.util.List;

public class OrderPage extends AppCompatActivity {

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

        ListView orders_list = findViewById(R.id.orders_list);

        List<String> coursesTitle = new ArrayList<>();
        for (Course c : MainActivity.fullCourseList) {
            if(Order.items_id.contains(c.getId()))
                coursesTitle.add(c.getTitle());

        }

        orders_list.setAdapter(new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, coursesTitle));


    }

    public void openMain(View view){
        Intent intent = new Intent(this, MainActivity.class);
        intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
        startActivity(intent);
    }
    public void onClick(View v) {
        //fullCourseList.clear();
    }
}

共有1个答案

哈烨熠
2023-03-14

清除ArrayList后,必须通知适配器数据源已更改。

public class OrderPage extends AppCompatActivity {
    
    private ListView orders_list;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_order_page);
        orders_list = findViewById(R.id.orders_list);
        List<String> coursesTitle = new ArrayList<>();
        for (Course c : MainActivity.fullCourseList) {
            if(Order.items_id.contains(c.getId()))
                coursesTitle.add(c.getTitle());
        }
        orders_list.setAdapter(new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, coursesTitle));
    }

    public void openMain(View view){
        Intent intent = new Intent(this, MainActivity.class);
        intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
        startActivity(intent);
    }
    public void onClick(View v) {
        fullCourseList.clear();
        orders_list.notifyDataSetChanged();
    }
}
 类似资料:
  • 我正在用C#WPF做一个项目,它包含在一个客户机管理中,在那里我添加了新的客户机,在一个txt文档中有save,我有一个listview,在那里我可以看到所有添加的客户机,但现在我想实现一个delete按钮,在那里我从listview中选择一个客户机,并可以删除它。如果我现在做的正确,如果有人能帮我…,…谢谢。

  • 如何在JavaFX中创建每行都有删除按钮和删除按钮操作?

  • 我有一个嵌套的列表框(主对象列表中的对象集合),它需要删除基础项。 删除项时,我可以重置主列表的itemssource,但主列表将有大量项,每次从其基础集合中移除项时,主滚动条也将重置,这使得用户愿意以非常痛苦的方式杀死我。 我的问题:如何找到项的容器,单击了哪个按钮,如何找到项本身,以便杀死@&!$*&#$@(诅咒拟声词)? 以下是列表的XAML示例: 我的应该怎么样?

  • 好的,我有一个Listview适配器,其中包含一个ImageView、TextView和另一个ImageView。因此,当用户按下第二个ImageView时,我希望能够删除列表中的项目。当用户按下列表中的项目时,它将启动TextToSpeech,它将说出TextView中的内容。但如果用户想要删除条目,他/她将按下第二个ImageView,这是一个删除图标,此时该项目将从列表中删除。启动Image

  • 如您所见,我制作了对话框,displaynotedate用于读取与金额相关的其他数据,并在对话框中读取:

  • 我想从java中的表中删除选定的行。该事件应在单击按钮时执行。如果有人帮助我,我会非常感激。。。 例如,有一个名为sub\U table的表,有3列,即sub\U id、sub\U name、class。当我从该表中选择一行并单击“删除”按钮时,应删除该特定行。。