Reputation: 11
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
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
Reputation: 399
Did you mean Change the activity background over XML file?
android:background="@android:color/xxxxx"
Pick one of listed color.
Upvotes: 0
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