Помогите передать Context

219
22 декабря 2017, 01:29

Никак не получается передать Context из одного класса в другой.

Вод часть кода первого класса.

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_setting);

        rootScrollView = (RootScrollView) findViewById(R.id.menu_scroll_view);
        childScrollView = (ChildScrollView) >findViewById(R.id.child_scroll_view);
        childScrollView.setBackgroundScrollView(rootScrollView);
        childScrollView.setCloseDistance(50);
        bar1 = (RelativeLayout) findViewById(R.id.bar1);
        childContainer[0]=(LinearLayout) >getLayoutInflater().inflate(R.layout.export_file, null);
        bar1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                childScrollView.addView(childContainer[0], 0, new >ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
                childScrollView.openWithAnim(bar1,false,true);
                button = findViewById(R.id.buttonexport);
                button.setOnClickListener(new Button.OnClickListener() {
                    @Override
                    public void onClick(View view) {
                        exportButton();
                    }
                });
                select();
            }
        });
        bar2 = (RelativeLayout) findViewById(R.id.bar2);
        childContainer[1] = (LinearLayout) >getLayoutInflater().inflate(R.layout.export_file, null);
        bar2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                childScrollView.addView(childContainer[1], 0, new >ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
                childScrollView.openWithAnim(bar2, false, true);
            }
        });
    }
    private void exportButton() {
        if (j==1) {
            try {
                ExportFiles exportFiles;
                exportFiles = new ExportFiles(getApplicationContext());
                //exportFiles = new ExportFiles(this);
                openQuitDialog(exportFiles.expotrtxt());
                }
             catch (Exception e) {
                    e.printStackTrace();
                 Log.d("mLog", "error ExportFiles: " + e);
             }
        }
        else
        {
            if (j==2) {
                try {
                    ExportFiles exportFiles;
                    exportFiles = new ExportFiles(getApplicationContext());
                    openQuitDialog(exportFiles.exportxls());
                }
                catch (Exception e) {
                    e.printStackTrace();
                    Log.d("mLog", "Ошибка: " + e);
                }
                    }
            else{
                Toast.makeText(getApplicationContext(), >R.string.export_choice,
                Toast.LENGTH_SHORT).show();
                }
        }
    }

Вот здесь передаю Context

        ExportFiles exportFiles;
        exportFiles = new ExportFiles(getApplicationContext());
        //exportFiles = new ExportFiles(this);
        openQuitDialog(exportFiles.expotrtxt());

Вылетает ошибка java.lang.NullPointerException. Понимаю что передаю не то что надо или совсем ничего не передаю. Помогите исправить.

Вот метод другого класса куда передаю.

конструктор

public ExportFiles (Context mContext){
        this.mContext = mContext;
    }

И часть самого метод

public String expotrtxt() {  
        FileOutputStream fileOutputStream = null;
        File folder = null;
        try {
            folder = new File(mContext.getExternalFilesDir(null) +
                    File.separator + DIR);
            Log.d("mLog", "path: "+ mContext.getExternalFilesDir(null) );
        } catch (Exception e) {
            e.printStackTrace();
            Log.d("mLog", "path: "+ mContext.getExternalFilesDir(null) + e);
        }
        try {
            if (!folder.exists()) {
                folder.mkdir();
                Log.d("mLog", "papka: "+ folder.getAbsolutePath());
            }
READ ALSO
Как правильно отрисовывать объекты в java swing

Как правильно отрисовывать объекты в java swing

У меня есть много объектов, которые хочу отрисовать на экранЕсли дело обстоит в обычной отрисовке, то тут никаких проблем не возникает, все...

295
Перечисления(Enum) Java

Перечисления(Enum) Java

Например, у меня есть класс Person, у которого есть конструктор

260
Вопрос? В чём причина?

Вопрос? В чём причина?

/*При вводе n-го количества символов при условии, что первый введённый символ находится в диапазоне от 1 до 5 программа работает не корректно*/

213
ObservableList для чего

ObservableList для чего

Поясните пожалуйста что из себя представляет в JavaFx список ObservableList и для чего он используется? Можно ли вместо обычных ArrayList использовать...

264