gilu66
gilu66

Reputation: 11

How to create preferences in Android?

I have a problem with android settings. I want to create settings for changing the background color of an activity. What do I have to do?

I have layout:

public class MyApp extends PreferenceActivity{


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    }

public void display(View view) 
{
        Intent intent = new Intent(this, Display.class);

    startActivity(intent);

}

@Override
public boolean onCreateOptionsMenu(Menu menu)
{

    MenuInflater menuInflater = getMenuInflater();
    menuInflater.inflate(R.menu.menu, menu);
    return true;
}


public boolean onOptionsItemSelected( MenuItem item)
{

    switch (item.getItemId())
    {
    case R.id.menu_about:
        Intent menu_about = new Intent(this, About.class);
         startActivity(menu_about);
        return true;

    case R.id.menu_copyright:
        Intent menu_copyright = new Intent(this, Copyright.class);
        startActivity(menu_copyright);

        return true;

    case R.id.menu_settings:

        // ACTIVITY OF SETTINGS
        return true;

    case R.id.menu_exit:

        finish();
        return true;
    default:
        return super.onOptionsItemSelected(item);
    }
};

}

I want preference like this:

https://i.sstatic.net/k2qA5.png

Now, did You understend me?

Upvotes: 0

Views: 603

Answers (3)

Android Developer
Android Developer

Reputation: 1039

menu.xml

 <?xml version="1.0" encoding="utf-8"?>
        <menu xmlns:android="http://schemas.android.com/apk/res/android">
        <item    
        android:id="@+id/settings"    
        android:title="Settings"    
       >
        <menu>
             <item android:id="@+id/red"
                  android:title="Red" />

            <item android:id="@+id/Blue"

                  android:title="Blue" />

    </menu>  
   </item>  

     </menu>

AndroidMenusActivity.java

public class AndroidMenusActivity extends Activity {
   LinearLayout li;
     public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            li= findViewById(R.id.layoutid);
        }



  @Override
        public boolean onCreateOptionsMenu(Menu menu)
        {
            MenuInflater menuInflater = getMenuInflater();
            menuInflater.inflate(R.layout.menu, menu);
            return true;
        }


  public boolean onOptionsItemSelected(MenuItem item)
    {

        switch (item.getItemId())
        {
        case R.id.red:
              li.setBackgroundColor("#ff0000");
            break;

        case R.id.blue:
              li.setBackgroundColor("#0000ff");
        break;

        }
    }   

}

main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/layoutid"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

</LinearLayout>

Upvotes: 1

Fedy Venom
Fedy Venom

Reputation: 399

Did you mean Change the activity background over XML file?

android:background="@android:color/xxxxx"

Pick one of listed color.

Upvotes: 0

cgalvao1993
cgalvao1993

Reputation: 148

Create SharedPreferences this way

 SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
 SharedPreferences.Editor editor = settings.edit();
 editor.putString("PrefName", VALUE);
 editor.commit();

Get its values this way

 SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
 String s = settings.getString("PrefName", ""));

The last statement means you are looking for the value of "PrefName" and setting "" if nothing is found.

Hope it helps

Upvotes: 1

Related Questions