首页 > 解决方案 > 将值从一个类添加到另一个类时,Listview 不显示更新的值

问题描述

我在 A 类中有一个数组列表和两个文本字段,一个来自 A 类,另一个来自 B 类,
虽然通过 A 类文本字段向数组列表添加值对我来说效果很好,

并且当尝试从 B 类文本字段添加时,它被添加到数组列表中,但不会在列表视图中显示更新的列表(空白)
下面是我到目前为止尝试过的代码

A级:-

public static ArrayList<String> arrayList = new ArrayList<>();
    ArrayAdapter<String> arrayAdapter;
    ListView listView;
    EditText quickTask;
    Button addButton;
    Button moreButton;

    public static ArrayList<String> addToList( String i ) {
        arrayList.add(i);
        return arrayList;
    }

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

        quickTask = (EditText) findViewById(R.id.quicktaskeditText);
        listView = (ListView) findViewById(R.id.TasksListView);
        arrayAdapter = new ArrayAdapter<String>(ClassA.this, android.R.layout.simple_list_item_1,arrayList);

        addButton = (Button) findViewById(R.id.Addbutton);

        addButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String task = quickTask.getText().toString();
                arrayList.add(task);
                listView.setAdapter(arrayAdapter);
                arrayAdapter.notifyDataSetChanged();
            }
        });
    moreButton = (Button) findViewById(R.id.moreButton);

    moreButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent secondActIntent = new Intent(getApplicationContext(),ClassB.class);
            startActivity(secondActIntent);
        }
    });
}

B类:-

    EditText Title;
    Button AddButton;
    ArrayList<String> alist;

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

        Title = (EditText) findViewById(R.id.Title);
        AddButton = (Button) findViewById(R.id.secondAddButton);

        AddButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String task = Title.getText().toString();
                //Adding text to Class-A arraylist
                alist = ClassA.addToList(task);
                Intent startIntent = new Intent(getApplicationContext(),ClassA.class);
               startActivity(startIntent);
            }
        });
    }

标签: javaandroidarraylist

解决方案


因为您没有通知 ListView ArrayList 的内容发生了变化。

notifyDataSetChanged只有在按钮侦听器中。您需要将其添加到Class-A#onResume或 中addTolist


推荐阅读