Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/184.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 在方法中向arraylist添加项,但在其他方法中为空;_Java_Android - Fatal编程技术网

Java 在方法中向arraylist添加项,但在其他方法中为空;

Java 在方法中向arraylist添加项,但在其他方法中为空;,java,android,Java,Android,我使用arrayList将用户选择的项存储在一个方法中,但是当我尝试在其他方法中使用存储的项时,列表是空的。如何使其项用于其他方法 这就是整个片段代码 此方法由自定义接口覆盖 这是将项目添加到arraylist的位置 @凌驾 公共作废对话框SelectEdItems(列表项){ 列表=新的ArrayList() processBatch方法 我想在这个方法中使用存储在arraylist中的项 使arraylist在声明时保持静态,解决了我的问题 检查首先调用哪个方法?当用户选择items和pro

我使用arrayList将用户选择的项存储在一个方法中,但是当我尝试在其他方法中使用存储的项时,列表是空的。如何使其项用于其他方法

这就是整个片段代码

此方法由自定义接口覆盖 这是将项目添加到arraylist的位置

@凌驾 公共作废对话框SelectEdItems(列表项){ 列表=新的ArrayList()

processBatch方法 我想在这个方法中使用存储在arraylist中的项

使arraylist在声明时保持静态,解决了我的问题


检查首先调用哪个方法?当用户选择items和processBatch()时,首先调用dialogSelectedItems()在submitcan update full code fragment?can update full code fragment?时被调用,您的意思是发布所有完整的代码片段。我认为您使用的是不同的实例,因此它的列表为空。如果您需要不同的实例,则可以使用静态变量
/**
 * A simple {@link Fragment} subclass.
 */
public class AddBatchFragment extends Fragment implements AdapterView.OnItemSelectedListener,View.OnClickListener,OnDialogSelectedItems{
    private EditText batchCode,batchName;
    private static TextView subjectText;
    private List<String> subjects = new ArrayList<>();
    private Spinner batchCourseSpinner,batchsemesterSpinner;
    private Button createBatchBtn,resetBatchBtn,selectSubjects;
    private Spinner courseSpinner,semesterSpinner,subjectSpinner;
    private IBatchDao iBatchDao;
    private CourseTasks.selectCoursesAsyncTask coursesAsyncTask;
    private SemesterTasks.selectSemestersAsyncTask semestersAsyncTask;
    private List<CourseModel> courseModels;
    private List<SubjectModel> subjectModels = new ArrayList<>();
    private List<SemesterModel> semesterModels;
    private   ArrayAdapter<CourseModel> courseAdapter;
    private  ArrayAdapter<SemesterModel> semesterAdapter;
    private SelectSubjectsDialog subjectsDialog;
    private CourseModel course;
    private SemesterModel semester;
    private long addBatchStatus;
@Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //dao
       // iSubjectDao = new SubjectDao(getActivity());
        iBatchDao = new BatchDao(getActivity());
        //tasks
        coursesAsyncTask = new CourseTasks.selectCoursesAsyncTask(getActivity() , new CourseDao(getActivity()));
        semestersAsyncTask = new SemesterTasks.selectSemestersAsyncTask(getActivity() , new SemesterDao(getActivity()));
        //retrieving values from tasks
        try {
          //  subjectModels = subjectAsyncTask.execute().get();
            courseModels = coursesAsyncTask.execute().get();
            semesterModels = semestersAsyncTask.execute().get();
        } catch (InterruptedException e) {
            e.printStackTrace();
        } catch (ExecutionException e) {
            e.printStackTrace();
        }

        //creating spinner adapters
         courseAdapter = new ArrayAdapter<>(getActivity(),android.R.layout.simple_spinner_dropdown_item,courseModels);
        courseAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

       semesterAdapter = new ArrayAdapter<>(getActivity(),android.R.layout.simple_spinner_dropdown_item,semesterModels);
        semesterAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

    }
    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
   setHasOptionsMenu(true);

     View   view = inflater.inflate(R.layout.fragment_add_batch, container, false);
     //edit texts
        batchCode = view.findViewById(R.id.batch_code);
        batchName = view.findViewById(R.id.batch_name);
        //spinners
        courseSpinner = view.findViewById(R.id.batch_course_spinner);
        courseSpinner.setAdapter(courseAdapter);
        courseSpinner.setOnItemSelectedListener(this);

        semesterSpinner = view.findViewById(R.id.batch_semester_spinner);
        semesterSpinner.setAdapter(semesterAdapter);
        semesterSpinner.setOnItemSelectedListener(this);

        //buttons
        selectSubjects = view.findViewById(R.id.batch_subjects_dropdown);
        selectSubjects.setOnClickListener(this);
        createBatchBtn  = view.findViewById(R.id.create_batch_btn);
        createBatchBtn.setOnClickListener(this);
        resetBatchBtn = view.findViewById(R.id.reset_batch_btn);
        resetBatchBtn.setOnClickListener(this);
            //text view
        subjectText = view.findViewById(R.id.selected_subjects);
        subjectText.setText("no course_unit selected");

        return view;
    }

*onCreateOptionMenu method*


 @Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
        super.onCreateOptionsMenu(menu, inflater);
        inflater.inflate(R.menu.course_menu , menu);
    }

    //item action

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        return true;
    }

    @Override
    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
        switch (parent.getId()){
            case R.id.batch_course_spinner:
                //select course object
                 course = courseModels.get(position);
               // Toast.makeText(getActivity() , "course item "+course.getName()+" course code "+course.getCode(),Toast.LENGTH_LONG).show();
                break;
            case R.id.batch_semester_spinner:
                  semester = semesterModels.get(position);

                break;
        }
    }

    @Override
    public void onNothingSelected(AdapterView<?> parent) {

    }

    @Override
    public void onClick(View view) {
         switch (view.getId()){
             case R.id.batch_subjects_dropdown:
                 subjectsDialog = new SelectSubjectsDialog();
                 subjectsDialog.show(getActivity().getSupportFragmentManager() , "select subject");
                 break;
             case R.id.create_batch_btn:
                 processBatch();
                 break;

             case R.id.reset_batch_btn:
                     resetFields();
                 break;
         }
    }  
              for(String s: items) {
                  subjects.add(s);
              }
        Log.d("sub", "dialogSelectedItems: selected subject string size "+subjects.size());


        }



private void resetFields(){
        batchName.setText("");
        batchCode.setText("");
}
private void processBatch(){
        String batchname = batchName.getText().toString();
        String batchcode = batchCode.getText().toString();
        Toast.makeText(getActivity() , "sujectModels "+subjectModels.size() , Toast.LENGTH_LONG).show();
        Toast.makeText(getActivity() , "subs size "+subjects.size() , Toast.LENGTH_LONG).show();


}
public class AddBatchFragment extends Fragment implements AdapterView.OnItemSelectedListener,View.OnClickListener,OnDialogSelectedItems{

    private static List<String> subjects = new ArrayList<>();
@Override
    public void dialogSelectedItems(List<String> items) {
        List<SubjectModel> list = new ArrayList<>();
        for (String s : items) {
            subjects.add(s);
        }
 private void processBatch(){
        Toast.makeText(getActivity() , "subs size "+subjects.size()+" item at 2 "+subjects.get(2) , Toast.LENGTH_LONG).show();