【发布时间】:2021-08-07 02:21:30
【问题描述】:
这不是一个重复的问题,我已经尝试了 StackOverflow 上出现的有关该主题的所有内容,但没有任何效果。
问题是,当我尝试在添加新数据时更新列表视图时,在调用 notifyDataSetChanged() 时它不显示更新的数据,我必须退出并再次进入 Activity 以查看列表视图中的更改。没有任何效果,即使清除列表并再次添加新数据。
不用担心http客户端,问题不存在,完美运行。用“手工制作”的 ArrayList 替换它会出现同样的问题。 循环也不是问题,同样的问题在循环外仍然存在。
public class CredentialManager extends AppCompatActivity implements View.OnClickListener {
final Handler handler = new Handler(Looper.getMainLooper());
ListView credentialsList;
ArrayList<String> credentials;
ArrayAdapter<String> adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_credential_manager);
credentialsList = findViewById(R.id.credentialsList);
credentials = HTTPClientCredentials.read("findByUser", String.valueOf(MainActivity.user.getIdUser()));
adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, credentials);
credentialsList.setAdapter(adapter);
adapter.notifyDataSetChanged();
handler.postDelayed(new Runnable() {
public void run() {
credentials.clear();
credentials = HTTPClientCredentials.read("findByUser", String.valueOf(MainActivity.user.getIdUser()));
adapter.notifyDataSetChanged();
handler.postDelayed(this, 5000);
}
}, 5000);
}
}
【问题讨论】:
标签: java android listview arraylist notifydatasetchanged