两个活动之间的Android SharedPreferences

时间:2014-12-28 19:32:02

标签: android sharedpreferences

我的程序存在问题,我无法使用SharedPreferences功能。我有两个活动,一个是文本编辑器,另一个是设置菜单。我找不到将SharedPreferences从一个活动转移到另一个活动的方法。 编辑:我使用默认首选项,并且活动在同一行中崩溃。 这是新代码: 活动1:

package com.phisic.files;

import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

/**
 * Created by TempledUX on 27/12/2014.
 */
public class ExternalFile extends Activity{

    EditText editor;
    EditText filename;

    @Override
    public void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.external_file);
        editor = (EditText)findViewById(R.id.editor);
        filename = (EditText)findViewById(R.id.filename);
        Button btnGuardar = (Button)findViewById(R.id.save);
        btnGuardar.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                save();
            }
        });
        Button btnCargar = (Button)findViewById(R.id.load);
        btnCargar.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                load();
            }
        });
        updateSettings();
    }

    @Override
    public void onResume(){
        super.onResume();
    }

    protected void save(){
        OutputStreamWriter out;
        try{
            out = new OutputStreamWriter(openFileOutput(filename.getText().toString(), 0));
            out.write(editor.getText().toString());
            out.flush();
            out.close();
            showMessage("Se ha grabado el documento");
        }
        catch(Throwable t){
            showMessage("Error: " + t.getLocalizedMessage());
        }
    }

    protected void load(){
        InputStreamReader in;
        try{
            in = new InputStreamReader(openFileInput(filename.getText().toString()));
            BufferedReader buff = new BufferedReader(in);
            String strTmp;
            StringBuffer strBuff = new StringBuffer();
            while((strTmp = buff.readLine())!=null){
                strBuff.append(strTmp + "\n");
            }
            in.close();
            editor.setText(strBuff.toString());
            showMessage("Se ha leido el documento");
        }
        catch(Throwable t){
            showMessage("Error: " + t.getLocalizedMessage());
        }
    }

    public void showMessage(String message){
        Toast toast = Toast.makeText(this, message, Toast.LENGTH_SHORT);
        toast.show();
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu){
        getMenuInflater().inflate(R.menu.menu_resource_file, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item){
        switch(item.getItemId()){
            case R.id.clearEditor:
                editor.setText("");
                return true;
            case R.id.settings:
                Intent intent = new Intent(this, EditorSettings.class);
                startActivity(intent);
                return true;
        }
        return super.onOptionsItemSelected(item);
    }

    public void updateSettings(){
        String textColor;
        String editorColor;
        //Restablecimiento de las preferencias
        SharedPreferences spref = PreferenceManager.getDefaultSharedPreferences(this);
        if (spref.contains("textColor")){
            textColor = spref.getString("textColor","");
        }
        //Default value
        else {textColor = "Negro";}
        //Ajuste del color de texto
        if (textColor == "Negro") editor.setTextColor(getResources().getColor(R.color.Negro));
        else if (textColor == "Rojo") editor.setTextColor(getResources().getColor(R.color.Rojo));
        else if (textColor == "Azul") editor.setTextColor(getResources().getColor(R.color.Azul));
        else if (textColor == "Amarillo") editor.setTextColor(getResources().getColor(R.color.Amarillo));
        else if (textColor == "Naranja") editor.setTextColor(getResources().getColor(R.color.Naranja));
        else if (textColor == "Rosa") editor.setTextColor(getResources().getColor(R.color.Rosa));
        else if (textColor == "Morado") editor.setTextColor(getResources().getColor(R.color.Morado));
        else if (textColor == "Verde") editor.setTextColor(getResources().getColor(R.color.Verde));
        //Ajuste del color de fondo
        if (spref.contains("editorColor")){
            editorColor = spref.getString("editorColor","");
        }
        //Default value
        else {editorColor = "Blanco";}
        if (editorColor == "") editorColor = "Blanco";
        if (editorColor == "Negro") editor.setBackgroundColor(getResources().getColor(R.color.Negro));
        else if (editorColor == "Rojo") editor.setBackgroundColor(getResources().getColor(R.color.Rojo));
        else if (editorColor == "Azul") editor.setBackgroundColor(getResources().getColor(R.color.Azul));
        else if (editorColor == "Amarillo") editor.setBackgroundColor(getResources().getColor(R.color.Amarillo));
        else if (editorColor == "Naranja") editor.setBackgroundColor(getResources().getColor(R.color.Naranja));
        else if (editorColor == "Rosa") editor.setBackgroundColor(getResources().getColor(R.color.Rosa));
        else if (editorColor == "Morado") editor.setBackgroundColor(getResources().getColor(R.color.Morado));
        else if (editorColor == "Verde") editor.setBackgroundColor(getResources().getColor(R.color.Verde));
        else if (editorColor == "Blanco") editor.setBackgroundColor(getResources().getColor(R.color.Blanco));
    }
}

活动2:

package com.phisic.files;

import android.app.Activity;
import android.app.Fragment;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.content.Context;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import java.util.ArrayList;

/**
 * Created by TempledUX on 27/12/2014.
 */
public class EditorSettings extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.editor_settings_placeholder);
        FragmentTransaction ft = getFragmentManager().beginTransaction();
        ListFragment fragment = new ListFragment();
        ft.replace(R.id.placeholder, fragment);
        ft.commit();
    }

    public static class ListFragment extends Fragment{
        @Override
        public void onCreate(Bundle savedInstanceState){
            super.onCreate(savedInstanceState);
        }
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                 Bundle savedInstanceState) {
            View v;
            v = inflater.inflate(R.layout.editor_settings_fragment, container, false);
            ArrayList<String> settings = new ArrayList<String>();
            settings.add(0,"Color del texto");
            settings.add(1,"Color del editor");
            settings.add(2,"Tamaño del texto");
            Context context = getActivity().getBaseContext();
            ListView listView = (ListView)v.findViewById(R.id.listView);
            listView.setAdapter(new ArrayAdapter<String>(context,
                    android.R.layout.simple_list_item_1, settings));
            listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                    switch (position){
                        case 0:
                            TextColorsListFragment fragmentColors = new TextColorsListFragment();
                            FragmentTransaction ft = getFragmentManager().beginTransaction();
                            ft.replace(R.id.placeholder, fragmentColors);
                            ft.setTransition(ft.TRANSIT_FRAGMENT_FADE);
                            ft.addToBackStack("fragmentSettings");
                            ft.commit();
                            break;
                        case 1:
                            EditorColorsListFragment editorColors = new EditorColorsListFragment();
                            FragmentTransaction ft2 = getFragmentManager().beginTransaction();
                            ft2.replace(R.id.placeholder, editorColors);
                            ft2.setTransition(ft2.TRANSIT_FRAGMENT_FADE);
                            ft2.addToBackStack("fragmentSettings");
                            ft2.commit();
                            break;
                    }
                }
            });
            return v;
        }
    }

    public static class TextColorsListFragment extends Fragment{
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                 Bundle savedInstanceState){
            View view;
            view = inflater.inflate(R.layout.editor_settings_text_color, container, false);
            final ExternalFile externalFile = new ExternalFile();
            //Ajuste del indicador de color seleccionado
            TextView colorSelected = (TextView)view.findViewById(R.id.actualColorView);
            final SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getActivity());
            String colorSelectedIntegral = preferences.getString("color", "Negro");
            colorSelected.setText(colorSelected.getText().toString() + " " + colorSelectedIntegral);
            //Ajuste de la lista de colores
            ArrayList<String> colors = new ArrayList<String>();
            colors.add(0,"Negro");
            colors.add(1,"Rojo");
            colors.add(2,"Azul");
            colors.add(3,"Amarillo");
            colors.add(4,"Naranja");
            colors.add(5,"Rosa");
            colors.add(6,"Morado");
            colors.add(7,"Verde");
            Context context = getActivity().getBaseContext();
            ListView listView = (ListView)view.findViewById(R.id.listViewTextColors);
            listView.setAdapter(new ArrayAdapter<String>(context,
                    android.R.layout.simple_list_item_1, colors));
            //Listener de la lista
            listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                    SharedPreferences.Editor editor = preferences.edit();
                    switch (position){
                        case 0:
                            editor.putString("color","Negro");
                            break;
                        case 1:
                            editor.putString("color","Rojo");
                            break;
                        case 2:
                            editor.putString("color","Azul");
                            break;
                        case 3:
                            editor.putString("color","Amarillo");
                            break;
                        case 4:
                            editor.putString("color","Naranja");
                            break;
                        case 5:
                            editor.putString("color","Rosa");
                            break;
                        case 6:
                            editor.putString("color","Morado");
                            break;
                        case 7:
                            editor.putString("color","Verde");
                            break;
                    }
                    editor.commit();
                    ((EditorSettings)getActivity()).showMessage("Se ha guardado el color");
                    FragmentManager fm = getFragmentManager();
                    fm.popBackStack("fragmentSettings", fm.POP_BACK_STACK_INCLUSIVE);
                    externalFile.updateSettings();
                }
            });
            return view;
        }
    }

    public static class EditorColorsListFragment extends Fragment{
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                 Bundle savedInstanceState){
            View view;
            view = inflater.inflate(R.layout.editor_settings_text_color, container, false);
            final ExternalFile externalFile = new ExternalFile();
            //Ajuste del indicador de color seleccionado
            TextView colorSelected = (TextView)view.findViewById(R.id.actualColorView);
            final SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getActivity());
            String colorSelectedIntegral = preferences.getString("color","Blanco");
            colorSelected.setText(colorSelected.getText().toString() + " " + colorSelectedIntegral);
            //Ajuste de la lista de colores
            ArrayList<String> colors = new ArrayList<String>();
            colors.add(0,"Negro");
            colors.add(1,"Rojo");
            colors.add(2,"Azul");
            colors.add(3,"Amarillo");
            colors.add(4,"Naranja");
            colors.add(5,"Rosa");
            colors.add(6,"Morado");
            colors.add(7,"Verde");
            colors.add(8, "Blanco");
            ListView listView = (ListView)view.findViewById(R.id.listViewTextColors);
            Context context = getActivity().getBaseContext();
            listView.setAdapter(new ArrayAdapter<String>(context,
                    android.R.layout.simple_list_item_1, colors));
            listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> parent, View view, int position, long id) {;
                    SharedPreferences.Editor editor = preferences.edit();
                    switch (position){
                        case 0:
                            editor.putString("color","Negro");
                            break;
                        case 1:
                            editor.putString("color","Rojo");
                            break;
                        case 2:
                            editor.putString("color","Azul");
                            break;
                        case 3:
                            editor.putString("color","Amarillo");
                            break;
                        case 4:
                            editor.putString("color","Naranja");
                            break;
                        case 5:
                            editor.putString("color","Rosa");
                            break;
                        case 6:
                            editor.putString("color","Morado");
                            break;
                        case 7:
                            editor.putString("color","Verde");
                            break;
                        case 8:
                            editor.putString("color","Blanco");
                            break;
                    }
                    editor.commit();
                    ((EditorSettings)getActivity()).showMessage("Se ha guardado el color");
                    FragmentManager fm = getFragmentManager();
                    fm.popBackStack("fragmentSettings", fm.POP_BACK_STACK_INCLUSIVE);
                    externalFile.updateSettings();
                }
            });
            return view;
        }
    }

    public void showMessage(String message){
        Toast toast = Toast.makeText(this, message, Toast.LENGTH_SHORT);
        toast.show();
    }


}

logcat:

12-28 20:38:32.191  21236-21236/com.phisic.files E/AndroidRuntime﹕ FATAL EXCEPTION: main
    Process: com.phisic.files, PID: 21236
    java.lang.NullPointerException
            at android.content.ContextWrapper.getSharedPreferences(ContextWrapper.java:173)
            at com.phisic.files.ExternalFile.updateSettings(ExternalFile.java:114)
            at com.phisic.files.EditorSettings$TextColorsListFragment$1.onItemClick(EditorSettings.java:141)
            at android.widget.AdapterView.performItemClick(AdapterView.java:298)
            at android.widget.AbsListView.performItemClick(AbsListView.java:1113)
            at android.widget.AbsListView$PerformClick.run(AbsListView.java:2911)
            at android.widget.AbsListView$3.run(AbsListView.java:3645)
            at android.os.Handler.handleCallback(Handler.java:733)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5146)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:732)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:566)
            at dalvik.system.NativeStart.main(Native Method)

1 个答案:

答案 0 :(得分:1)

这是ExternalFile

package com.phisic.files;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

/**
 * Created by TempledUX on 27/12/2014.
 */
public class ExternalFile extends Activity{

    EditText editor;
    EditText filename;

    @Override
    public void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.external_file);
        editor = (EditText)findViewById(R.id.editor);
        filename = (EditText)findViewById(R.id.filename);
        Button btnGuardar = (Button)findViewById(R.id.save);
        btnGuardar.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                save();
            }
        });
        Button btnCargar = (Button)findViewById(R.id.load);
        btnCargar.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                load();
                updateSettings(getApplicationContext());
            }
        });

    }

    @Override
    public void onResume(){
        super.onResume();
        updateSettings(getApplicationContext());
    }

    protected void save(){
        OutputStreamWriter out;
        try{
            out = new OutputStreamWriter(openFileOutput(filename.getText().toString(), 0));
            out.write(editor.getText().toString());
            out.flush();
            out.close();
            showMessage("Se ha grabado el documento");
        }
        catch(Throwable t){
            showMessage("Error: " + t.getLocalizedMessage());
        }
    }

    protected void load(){
        InputStreamReader in;
        try{
            in = new InputStreamReader(openFileInput(filename.getText().toString()));
            BufferedReader buff = new BufferedReader(in);
            String strTmp;
            StringBuffer strBuff = new StringBuffer();
            while((strTmp = buff.readLine())!=null){
                strBuff.append(strTmp + "\n");
            }
            in.close();
            editor.setText(strBuff.toString());
            showMessage("Se ha leido el documento");
        }
        catch(Throwable t){
            showMessage("Error: " + t.getLocalizedMessage());
        }
    }

    public void showMessage(String message){
        Toast toast = Toast.makeText(this, message, Toast.LENGTH_SHORT);
        toast.show();
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu){
        getMenuInflater().inflate(R.menu.menu_resource_file, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item){
        switch(item.getItemId()){
            case R.id.clearEditor:
                editor.setText("");
                return true;
            case R.id.settings:
                Intent intent = new Intent(this, EditorSettings.class);
                startActivity(intent);
                return true;
        }
        return super.onOptionsItemSelected(item);
    }

    public void updateSettings(Context context){
        String textColor;
        String editorColor;
        //Restablecimiento de las preferencias
        SharedPreferences spref = PreferenceManager.getDefaultSharedPreferences(context);
        if (spref.contains("textColor")){
            textColor = spref.getString("textColor","Negro");
        }
        //Default value
        else {textColor = "Negro";}
        //Ajuste del color de texto
        if (textColor.equals("Negro")) editor.setTextColor(getResources().getColor(R.color.Negro));
        else if (textColor.equals("Rojo")) editor.setTextColor(getResources().getColor(R.color.Rojo));
        else if (textColor.equals("Azul")) editor.setTextColor(getResources().getColor(R.color.Azul));
        else if (textColor.equals("Amarillo")) editor.setTextColor(getResources().getColor(R.color.Amarillo));
        else if (textColor.equals("Naranja")) editor.setTextColor(getResources().getColor(R.color.Naranja));
        else if (textColor.equals("Rosa")) editor.setTextColor(getResources().getColor(R.color.Rosa));
        else if (textColor.equals("Morado")) editor.setTextColor(getResources().getColor(R.color.Morado));
        else if (textColor.equals("Verde")) editor.setTextColor(getResources().getColor(R.color.Verde));
        //Ajuste del color de fondo
        if (spref.contains("editorColor")){
            editorColor = spref.getString("editorColor","Blanco");
        }
        //Default value
        else {editorColor = "Blanco";}
        if (editorColor.equals("Negro")) editor.setBackgroundColor(getResources().getColor(R.color.Negro));
        else if (editorColor.equals("Rojo")) editor.setBackgroundColor(getResources().getColor(R.color.Rojo));
        else if (editorColor.equals("Azul")) editor.setBackgroundColor(getResources().getColor(R.color.Azul));
        else if (editorColor.equals("Amarillo")) editor.setBackgroundColor(getResources().getColor(R.color.Amarillo));
        else if (editorColor.equals("Naranja")) editor.setBackgroundColor(getResources().getColor(R.color.Naranja));
        else if (editorColor.equals("Rosa")) editor.setBackgroundColor(getResources().getColor(R.color.Rosa));
        else if (editorColor.equals("Morado")) editor.setBackgroundColor(getResources().getColor(R.color.Morado));
        else if (editorColor.equals("Verde")) editor.setBackgroundColor(getResources().getColor(R.color.Verde));
        else if (editorColor.equals("Blanco")) editor.setBackgroundColor(getResources().getColor(R.color.Blanco));
    }
}

这是EdittorSettings

package com.phisic.files;

import java.util.ArrayList;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.Fragment;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.content.Context;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

/**
 * Created by TempledUX on 27/12/2014.
 */
@SuppressLint("NewApi") 
public class EditorSettings extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.editor_settings_placeholder);
        FragmentTransaction ft = getFragmentManager().beginTransaction();
        ListFragment fragment = new ListFragment();
        ft.replace(R.id.placeholder, fragment);
        ft.commit();
    }

    public static class ListFragment extends Fragment{
        @Override
        public void onCreate(Bundle savedInstanceState){
            super.onCreate(savedInstanceState);
        }
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                 Bundle savedInstanceState) {
            View v;
            v = inflater.inflate(R.layout.editor_settings_fragment, container, false);
            ArrayList<String> settings = new ArrayList<String>();
            settings.add(0,"Color del texto");
            settings.add(1,"Color del editor");
            settings.add(2,"Tamaño del texto");
            Context context = getActivity().getBaseContext();
            ListView listView = (ListView)v.findViewById(R.id.listView);
            listView.setAdapter(new ArrayAdapter<String>(context,
                    android.R.layout.simple_list_item_1, settings));
            listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                    switch (position){
                        case 0:
                            TextColorsListFragment fragmentColors = new TextColorsListFragment();
                            FragmentTransaction ft = getFragmentManager().beginTransaction();
                            ft.replace(R.id.placeholder, fragmentColors);
                            ft.setTransition(ft.TRANSIT_FRAGMENT_FADE);
                            ft.addToBackStack("fragmentSettings");
                            ft.commit();
                            break;
                        case 1:
                            EditorColorsListFragment editorColors = new EditorColorsListFragment();
                            FragmentTransaction ft2 = getFragmentManager().beginTransaction();
                            ft2.replace(R.id.placeholder, editorColors);
                            ft2.setTransition(ft2.TRANSIT_FRAGMENT_FADE);
                            ft2.addToBackStack("fragmentSettings");
                            ft2.commit();
                            break;
                    }
                }
            });
            return v;
        }
    }

    public static class TextColorsListFragment extends Fragment{
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                 Bundle savedInstanceState){
            View view;
            view = inflater.inflate(R.layout.editor_settings_text_color, container, false);
            final ExternalFile externalFile = new ExternalFile();
            //Ajuste del indicador de color seleccionado
            TextView colorSelected = (TextView)view.findViewById(R.id.actualColorView);
            final SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getActivity());
            String colorSelectedIntegral = preferences.getString("textColor", "Negro");
            colorSelected.setText(colorSelected.getText().toString() + " " + colorSelectedIntegral);
            //Ajuste de la lista de colores
            ArrayList<String> colors = new ArrayList<String>();
            colors.add(0,"Negro");
            colors.add(1,"Rojo");
            colors.add(2,"Azul");
            colors.add(3,"Amarillo");
            colors.add(4,"Naranja");
            colors.add(5,"Rosa");
            colors.add(6,"Morado");
            colors.add(7,"Verde");
            Context context = getActivity().getBaseContext();
            ListView listView = (ListView)view.findViewById(R.id.listViewTextColors);
            listView.setAdapter(new ArrayAdapter<String>(context,
                    android.R.layout.simple_list_item_1, colors));
            //Listener de la lista
            listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                    SharedPreferences.Editor editor = preferences.edit();
                    switch (position){
                        case 0:
                            editor.putString("textColor","Negro");
                            break;
                        case 1:
                            editor.putString("textColor","Rojo");
                            break;
                        case 2:
                            editor.putString("textColor","Azul");
                            break;
                        case 3:
                            editor.putString("textColor","Amarillo");
                            break;
                        case 4:
                            editor.putString("textColor","Naranja");
                            break;
                        case 5:
                            editor.putString("textColor","Rosa");
                            break;
                        case 6:
                            editor.putString("textColor","Morado");
                            break;
                        case 7:
                            editor.putString("textColor","Verde");
                            break;
                    }
                    editor.commit();
                    ((EditorSettings)getActivity()).showMessage("Se ha guardado el color");
                    FragmentManager fm = getFragmentManager();
                    fm.popBackStack("fragmentSettings", fm.POP_BACK_STACK_INCLUSIVE);

                }
            });
            return view;
        }
    }

    public static class EditorColorsListFragment extends Fragment{
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                 Bundle savedInstanceState){
            View view;
            view = inflater.inflate(R.layout.editor_settings_text_color, container, false);
            final ExternalFile externalFile = new ExternalFile();
            //Ajuste del indicador de color seleccionado
            TextView colorSelected = (TextView)view.findViewById(R.id.actualColorView);
            final SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getActivity());
            String colorSelectedIntegral = preferences.getString("editorColor","Blanco");
            colorSelected.setText(colorSelected.getText().toString() + " " + colorSelectedIntegral);
            //Ajuste de la lista de colores
            ArrayList<String> colors = new ArrayList<String>();
            colors.add(0,"Negro");
            colors.add(1,"Rojo");
            colors.add(2,"Azul");
            colors.add(3,"Amarillo");
            colors.add(4,"Naranja");
            colors.add(5,"Rosa");
            colors.add(6,"Morado");
            colors.add(7,"Verde");
            colors.add(8, "Blanco");
            ListView listView = (ListView)view.findViewById(R.id.listViewTextColors);
            Context context = getActivity().getBaseContext();
            listView.setAdapter(new ArrayAdapter<String>(context,
                    android.R.layout.simple_list_item_1, colors));
            listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> parent, View view, int position, long id) {;
                    SharedPreferences.Editor editor = preferences.edit();
                    switch (position){
                        case 0:
                            editor.putString("editorColor","Negro");
                            break;
                        case 1:
                            editor.putString("editorColor","Rojo");
                            break;
                        case 2:
                            editor.putString("editorColor","Azul");
                            break;
                        case 3:
                            editor.putString("editorColor","Amarillo");
                            break;
                        case 4:
                            editor.putString("editorColor","Naranja");
                            break;
                        case 5:
                            editor.putString("editorColor","Rosa");
                            break;
                        case 6:
                            editor.putString("editorColor","Morado");
                            break;
                        case 7:
                            editor.putString("editorColor","Verde");
                            break;
                        case 8:
                            editor.putString("editorColor","Blanco");
                            break;
                    }
                    editor.commit();
                    ((EditorSettings)getActivity()).showMessage("Se ha guardado el color");
                    FragmentManager fm = getFragmentManager();
                    fm.popBackStack("fragmentSettings", fm.POP_BACK_STACK_INCLUSIVE);

                }
            });
            return view;
        }
    }

    public void showMessage(String message){
        Toast toast = Toast.makeText(this, message, Toast.LENGTH_SHORT);
        toast.show();
    }


}