Java 如何在片段内更新listview而不是oncreateview方法
我有一个方法«Start()»,它读取文档并将数据写入列表视图 此方法位于ViewPager中使用的片段中 我需要此方法才能显示listview,因为我需要在无法显示listview的其他操作中调用此方法 片段Java 如何在片段内更新listview而不是oncreateview方法,java,android,listview,adapter,Java,Android,Listview,Adapter,我有一个方法«Start()»,它读取文档并将数据写入列表视图 此方法位于ViewPager中使用的片段中 我需要此方法才能显示listview,因为我需要在无法显示listview的其他操作中调用此方法 片段 public class classWednesday extends Fragment { private ListView lvMain; private List<Fragment> list = new ArrayList<>();
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.setAdapter(适配器)
返回null使用视图而不是视图组
View viewGroup = inflater.inflate(R.layout.wednesday, container,false);
在此处添加新记录时,哪一个返回null?listview“lvMain”
lvMain=getActivity().findViewById(R.id.lv周三)代码>它变为空。当应用程序加载lvMain.setAdapter(适配器)时返回null代码>对不起,但是这对我有什么帮助呢?onCreateView()当片段第一次绘制其用户界面时,系统会调用它。要为片段绘制UI,必须从该方法返回一个视图,该视图是片段布局的根。如果片段不提供UI,则可以返回null。请参阅
View viewGroup = inflater.inflate(R.layout.wednesday, container,false);