gpt4 book ai didi

java - 如何更新 fragment 内的 ListView 而不是在 oncreateview 方法中

转载 作者:行者123 更新时间:2023-12-02 00:45:26 24 4
gpt4 key购买 nike

我有一个方法«Start()»,它读取文档并将数据写入listview

此方法位于 ViewPager 中使用的 fragment 中

我需要此方法才能显示 ListView ,因为我需要在其他操作中调用此方法,而我将无法显示 ListView

fragment

public class classWednesday extends Fragment {
private ListView lvMain;
private List<Fragment> list = new ArrayList<>();
ArrayList<HelpAdapter> products = new ArrayList<>();
Integer num = 0;
private SharedPreferences settings;
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if (isVisibleToUser && (getActivity()!=null)) {
SharedPreferences.Editor editor = settings.edit();
editor.putString("Day","Wednesday.txt" );
editor.apply();
}
}

@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
ViewGroup viewGroup = (ViewGroup) inflater.inflate(R.layout.wednesday, container,false);
Start();
lvMain = viewGroup.findViewById(R.id.lvWednesday);
Adapter adapter = new Adapter(getActivity(),products);
lvMain.setAdapter(adapter);
Toast.makeText(getActivity(),"dsaasdasasdhasuidgasiuygausgdgydgas",Toast.LENGTH_LONG).show();
settings = getActivity().getSharedPreferences("Settings", MODE_PRIVATE);
if (settings.contains("Wednesday")) {
ImageButton imageButton = viewGroup.findViewById(R.id.imageButtonWednesday);
if (settings.getBoolean("Wednesday", true))
imageButton.setImageResource(R.drawable.on);
else
imageButton.setImageResource(R.drawable.off);

}
return viewGroup;
}
public void Start() {
products.clear();
try {
FileInputStream read = getActivity().openFileInput("Wednesday.txt");
InputStreamReader reader = new InputStreamReader(read);
BufferedReader bufferedReader = new BufferedReader(reader);
String temp_read;
while ((temp_read = bufferedReader.readLine()) != null) {
num ++;
products.add(new HelpAdapter(num + ")", temp_read));

}
bufferedReader.close();
reader.close();
read.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (NullPointerException ignore) {
}
num = 0;
}
}

附注如果添加

lvMain = getActivity().findViewById(R.id.lvWednesday);
Adapter adapter = new Adapter(getActivity(),products);
lvMain.setAdapter(adapter);

Start()方法中

那么,

lvMain.setAdapter(adapter);

返回

最佳答案

使用View而不是ViewGroup

View viewGroup = inflater.inflate(R.layout.wednesday, container,false);

关于java - 如何更新 fragment 内的 ListView 而不是在 oncreateview 方法中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57904880/

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