Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在片段内更新listview而不是oncreateview方法_Java_Android_Listview_Adapter - Fatal编程技术网

Java 如何在片段内更新listview而不是oncreateview方法

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<>();

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

此方法位于ViewPager中使用的片段中

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

片段

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);