[英]How to update listview inside fragment not in oncreateview method
I have a method «Start()» that reads the document and writes the data to the listview 我有一个方法«Start()» ,它可以读取文档并将数据写入列表视图
This method is in the fragment that is used in the ViewPager 此方法在ViewPager中使用的片段中
I need this method to be able to display the listview because I need to call this method in other actions from which I will not be able to display the 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;
}
}
PS If add PS如果添加
lvMain = getActivity().findViewById(R.id.lvWednesday);
Adapter adapter = new Adapter(getActivity(),products);
lvMain.setAdapter(adapter);
in Start () method 在Start()方法中
Then, 然后,
lvMain.setAdapter(adapter);
lvMain.setAdapter(adapter);
returns null 返回null
使用View代替ViewGroup
View viewGroup = inflater.inflate(R.layout.wednesday, container,false);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.