java - 将值从一个类添加到另一个类时,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);
}
});
}
解决方案
因为您没有通知 ListView ArrayList 的内容发生了变化。
您notifyDataSetChanged
只有在按钮侦听器中。您需要将其添加到Class-A#onResume
或 中addTolist
。
推荐阅读
- reactjs - 组件更新与组件卸载反应性能
- java - 如何在一些用户提供的整数之后用 10 个偶数整数填充数组?
- database - 为什么我的数据库读取会阻止我的播放框架服务器?
- matlab - 为什么 MATLAB 内置函数结果与我使用相同表达式自己定义函数时得到的结果不同?
- arrays - Bash - 如何获取数组中特定元素的值
- sql - 连接表时无法获得不同的结果
- python-3.x - Regarding try/except in python
- python - 如何向量化计算比 numpy 数组中当前最大值更小的数字?
- python - Python setup.py egg_info 失败 wsgiref
- javascript - Prevent window.onblur from impacting the dom