Cделал заметку но приложение компилируется и не запускается

Вот MainActivity

public abstract class MainActivity extends ActionBarActivity{
    private final static String FILENAME = "sample.txt";
    private EditText mEditText;
    private Context context;

    public class CrimeActivity extends Fragment {
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                 Bundle savedInstanceState) {
            return inflater.inflate(R.layout.activity_main, container, false);
        }
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
        inflater.inflate(R.menu.menu_main,menu);
        final MenuItem item = menu.findItem(R.id.action_open);
        mEditText = (EditText) mEditText.findViewById(R.id.editText);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case R.id.action_open:
                openFile(FILENAME);
                return true;
            case R.id.action_save:
                saveFile(FILENAME);
                return true;
            case R.id.action_settings:
                Intent intent = new Intent();
                intent = intent.setClass(context, SettingsActivity.class);
                context.startActivity(intent);
                return true;
            default:
                return true;
        }
    }

    // Метод для открытия файла
    private void openFile(String fileName) {
        try {
            InputStream inputStream = context.getApplicationContext().openFileInput(fileName);
            if (inputStream != null) {
                InputStreamReader isr = new InputStreamReader(inputStream);
                BufferedReader reader = new BufferedReader(isr);
                String line;
                StringBuilder builder = new StringBuilder();

                while ((line = reader.readLine()) != null) {
                    builder.append(line + "\n");
                }

                inputStream.close();
                mEditText.setText(builder.toString());
            }
        } catch (Throwable t) {
            Toast.makeText(context.getApplicationContext(),
                    "Exception: " + t.toString(), Toast.LENGTH_LONG).show();
        }
    }

    // Метод для сохранения файла
    private void saveFile(String fileName) {
        try {
            OutputStream outputStream = context.openFileOutput(fileName, 0);
            OutputStreamWriter osw = new OutputStreamWriter(outputStream);
            osw.write(mEditText.getText().toString());
            osw.close();
        } catch (Throwable t) {
            Toast.makeText(context.getApplicationContext(),
                    "Exception: " + t.toString(), Toast.LENGTH_LONG).show();
        }
    }
    public void onResume() {
        context.getApplicationContext();
        SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
        // читаем установленное значение из CheckBoxPreference
        if (prefs.getBoolean(context.getString(R.string.pref_openmode), false)) {
            openFile(FILENAME);
        }
        float fSize = Float.parseFloat(prefs.getString(
                context.getString(R.string.pref_size), "20"));
// применяем настройки в текстовом поле
        mEditText.setTextSize(fSize);
        String regular = prefs.getString(context.getString(R.string.pref_style), "");
        int typeface = Typeface.NORMAL;

        if (regular.contains("Полужирный"))
            typeface += Typeface.BOLD;

        if (regular.contains("Курсив"))
            typeface += Typeface.ITALIC;

// меняем настройки в EditText
        mEditText.setTypeface(null, typeface);
    }
}

А вот сам текстовый редактор обучалка.

Вот ошибки: введите сюда описание изображения


Ответы (1 шт):

Автор решения: Andrew

Вообще довольно странный класс у вас получается. У вас активность:

public abstract class MainActivity extends ActionBarActivity

в которой фрагмент:

public class CrimeActivity extends Fragment

а это совсем неправильно насколько я знаю. Если обратимся к примеру который на сайте то там есть активность без фрагмента, следовательно вы зачем-то вставили еще и фрагмент внутрь класса активности. Так же в активности должен быть переопределен метод:

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        mEditText = (EditText) findViewById(R.id.editText);
    }

в котором будут инициализированы виджеты разметки. Поэтому я бы вам предложил еще раз внимательно просмотреть пример который вы используете, и сделать все идентично. Когда приложение запустится (а судя по скриншотам на сайте оно запускается) то вы уже сможете понять что именно хотите изменить. Так же у вас в функции onCreateOptionsMenu инициализировано поле для ввода, в то время как пример говорит об инициализации в методе onCreate().

→ Ссылка