gpt4 book ai didi

android - 调用 setContentView 后根据用户输入更新 ListView

转载 作者:行者123 更新时间:2023-11-29 18:22:18 25 4
gpt4 key购买 nike

我想显示一个空 ListView ,然后由用户输入填充。我让 UI 流程正常工作,并且在用户通过通过 setContentView 调用的 View (即没有新的 Activity)输入一些信息后填充我的自定义对象列表。

我接受输入并将其添加到列表中,我想在 ListView 上对其进行汇总。但是,每当我添加到列表和/或 ArrayAdapter 并调用 adapter.notifyDataSetChanged() 时,它都不会执行我想要的操作。 ListView 仍然是空的。啊!这让我发疯!

@Override
public void onCreate(Bundle blah) {
ListView listView = (ListView) findViewById(R.id.results_list);
listView.setAdapter(new ArrayAdapter(this, android.R.layout.simple_list_item_1, list));
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.mnu_add:
final Activity act = this;
setContentView(R.layout.record_details);// the sub-view that takes the user input
// the button on the form to 'add' details:-
((Button) findViewById(R.id.recored_details_add_btn))
.setOnClickListener(
new OnClickListener() {
public void onClick(View v) {
// get input from widgets
list.add(someObject);
((ArrayAdapter<Object>) listView.getAdapter()).notifyDataSetChanged();
setContentView(R.layout.list_view);

}
}
);
((ArrayAdapter<Object>) listView.getAdapter()).notifyDataSetChanged();
break;
}
return true;
}

求求你,把我从痛苦中解救出来,告诉我我的愚蠢吗?

提前致谢。

最佳答案

public void onClick(View v) {
// get input from widgets
list.add(someObject);
((ArrayAdapter<Object>) listView.getAdapter()).notifyDataSetChanged();
setContentView(R.layout.list_view);

onClick 处理程序中的这个 setContentView 是否可能正在创建 ListView 小部件的新实例(没有适配器)或重新初始化 ListView (清除适配器)?

最初在 onCreate 中尝试将某些内容放入列表中,然后看看当您按下按钮时它是否消失。

我还没有看到任何代码(尽管我是一个相对的新手)在 Activity 的生命周期内切换 View 以从本质上调出不同的页面——大多数使用单独的 Activity 。

编辑:

OP 问:

Thanks...So how can I get what I want? The list I'm backing the adapter with is static; should I just use activities instead and rely on onCreate loading from the static field?

一些选项:

  1. 使用单独的 Activity

  2. 重新关联适配器(再次调用 setAdapter)——可能是个坏主意

  3. 在同一文件中声明两种布局。您将隐藏一个并取消隐藏另一个以在 View 之间切换,而不是调用 setContentView。这类似于 ListView 布局的工作方式(一种用于列表为空时,另一种用于列表不为空时)。我想我已经在网上的某个地方看到过这样的例子,但我现在没有引用资料。

关于android - 调用 setContentView 后根据用户输入更新 ListView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4774346/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com