java - 我无法刷新 ListView

标签 java android listview

我有两个类,第一个类用于 GUI,我在其中声明了 ListView 和适配器以及 setter ,以便从第二个类中调用它们。

public class AndroidGUIModifier implements IMyComponentGUIModifier, IFragmentEvents {

    private transient ListView lv;
    List<String> mydeviceslist;
    ArrayAdapter<String> adapter ;

    public void setAdapter(ArrayAdapter<String> adapter) {
    this.adapter = adapter;
    adapter.notifyDataSetChanged();
}

    public void setMydeviceslist(List<String> mydeviceslist) {
    this.mydeviceslist = mydeviceslist;
}

@Override
public void onCreateView() {

        lv=(ListView) fragment.findViewById("xdevices") ;
        mydeviceslist  = new ArrayList<String>();
        adapter = new ArrayAdapter<String>(fragment.getContext(),android.R.layout.simple_list_item_1,mydeviceslist);
       lv.setAdapter(adapter);

在我的第二堂课中,我将等待一个事件来接收我想要将其加载到 ListView 中的列表,然后我将调用列表 setter 来设置新接收的列表,并调用适配器 setter 来更新它,但是它不起作用,尽管我在日志中收到了设备列表,但没有显示任何内容。

public class triprincipal extends BCModel {
    public List<String> mydevices ;
    BCEvent bcEvent;
    final ArrayAdapter<String> adapter =guiModifier.getAdapter();


    while (isRunning()) {
      bcEvent = waitForBCEvent();
        if (bcEvent.getID() == checkevent) {
            mydevices = bcCommandSenderPlugin.getDevicesNames(); // here I get a list of my devices
            Log.i("devices", mydevices.toString());
            guiModifier.getFragment().getActivity().runOnUiThread(new Runnable() {

                @Override
                public void run() {

                    guiModifier.setMydeviceslist(mydevices);
                    guiModifier.setAdapter(adapter);

                }
            }  );

最佳答案

setMydeviceslist()中这样做:

this.mydeviceslist.addAll(mydeviceslist);
adapter.notifyDataSetChanged();

希望对您有帮助。

关于java - 我无法刷新 ListView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42692066/

相关文章:

java - 尽管在 Hibernate 映射文件中访问了 ="field",Hibernate 仍在寻找 setter

java - 如何使用 Mysql JDBC 驱动连接 Android 和 MySQL

android - 如何初始化选择每个选项的多项选择警报对话框?

java - 带有列表参数内容的 Mockito 模拟对象

java - 从 Java 内部执行查询以创建函数

java - 区分提供的默认无参数构造函数和声明的构造函数

安卓 MapView v2 黑屏

java - Android Dialog 一直坐立不安 - 不会保持一种尺寸

listview - 如何使ListView中的文本居中?

android - Recyclerview 单项选择。没有多点触控