2013-05-08 72 views
0

我有一个Android设置的问题。我想创建更改活动背景颜色的设置。我需要做什么?如何在Android中创建首选项?

我有布局:

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); 
    } 
}; 

}

我想偏好这样的:

http://i.stack.imgur.com/k2qA5.png

现在,你understend我吗?

+0

什么?无法得到你。 – Gunaseelan 2013-05-08 13:31:04

+0

我尝试创建自定义设置来更改背景颜色,但我不知道该怎么做。 – gilu66 2013-05-08 13:34:11

+1

是否允许用户编辑它们并在共享偏好中保留这些更改?你在质疑如何展示/存储这些偏好,或者如何使用它们?你试过什么了? – 2013-05-08 13:38:43

回答

1

创建SharedPreferences这样

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

得到其值这样

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

最后一条语句意味着你正在寻找“为prefname”和设置“”的值,如果没有被发现。

希望它有帮助

0

你的意思是改变XML文件的活动背景?

机器人:背景= “@机器人:颜色/ XXXXX”

接列出颜色之一。

1

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>