Search code examples
androidarrayssharedpreferencesspinnerandroid-sharedpreferences

Android how to trim sharedpreferences name


I'm getting all sharedpreferences created by my app and I insert them in a spinner but every sharedpreferences displayed like "example.xml" etc. I want to trim .xml extension let them just names like "example".

File prefsdir = new File(getApplicationInfo().dataDir,"shared_prefs");
   if(prefsdir.exists() && prefsdir.isDirectory()){
        String[] list = prefsdir.list();
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_expandable_list_item_1, android.R.id.text1,list);
        Spinner sp = (Spinner) findViewById(R.id.tum_ilaclar);
        sp.setAdapter(adapter);
   }

Solution

  • You can use something like this create a new method:

    String[] getList(String[] list){
        String values[] = new String[list.length];
        for(int i=0; i<list.length; i++){
            String value = list[i];
            values[i]=value.contains(".xml")?value.replace(".xml",""):value;
        }
        return values;
    }
    

    Then in your code change :

    String[] list = prefsdir.list();
    

    to

    String[] list = getList(prefsdir.list());
    

    This will remove the .xml part.