gpt4 book ai didi

java - Android View /fragment 问题

转载 作者:行者123 更新时间:2023-12-01 04:45:40 25 4
gpt4 key购买 nike

因此,当我按下特定按钮时,我尝试在 ListView 中加载不同的内容,但它仅加载我尝试加载的第一个内容(并且仅在我按下两次之后)。我找不到我做错了什么。

这是在我显示内容时创建 View 的代码:

public class ContentQuery extends Fragment {
private List<String> contents_list = new ArrayList<String>();
public static final String TAG = contentQuery.class.getSimpleName();
private String uri = "";

public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View lv = inflater.inflate(R.layout.contents_list, container, false);
super.onActivityCreated(savedInstanceState);
getContent(); // Sets contents_list
((ListView) lv).setAdapter(new ArrayAdapter<String>(getActivity(),
android.R.layout.simple_list_item_1, contents_list));
return lv;
}
}

我认为这可能是因为我应该以某种方式销毁它,但我对 Android 开发还很陌生。

tag = ContentQuery.TAG;
ContentQuery contentqueryfragment = null;
final Fragment foundFragment = fm.findFragmentByTag(tag);
if (foundFragment != null && uri != old_uri) {
fragment = foundFragment;
contentqueryfragment = (ContentQuery) fragment;
old_uri = uri;
} else {
contentqueryfragment = new ContentQuery();
contentqueryfragment.setUri(uri.toString());
fragment = contentqueryfragment;
}

之后:

if (fragment.isAdded())
{
tr.show(fragment);
} else
{
tr.remove(fragment);
tr.add(R.id.content, fragment, tag);
tr.show(fragment);

}
tr.commit();

currentUri = uri;
currentContentFragmentTag = tag;

最佳答案

如果您需要更新 List 中的内容,一个好的方法是将 List、ListAdapter 和 ListView 分开。当需要更新数据时,更新列表内容并通知Adapter列表内容发生变化。

例如。

ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, contents_list);
((ListView) lv).setAdapter(adapter);

...

button.onClickListener(...) {
contents_list.clear();

... populate list with new data ...

adapter.notifyDataSetChanged();
}

关于java - Android View /fragment 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15907215/

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