android - 如何跨 Activity 更改背景颜色

标签 android sdk background

这是我的第一个应用程序,也是我第一次发帖,请多多包涵。

我正在努力做到这一点,以便用户可以从“更改外观”屏幕中选择整个应用程序的背景颜色。然而,对于我现在所拥有的,它只会改变 Activity 的颜色,直到它回到主要 Activity 。

这是更改皮肤屏幕的代码

package cs.pacificu.mypace;

import android.R.layout;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.text.Layout;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;


public class Skin extends Activity
{

    @Override
    public void onCreate(Bundle savedInstanceState)
{
    final String[] SKINS = new String[] {"Light", "Dark"};

    super.onCreate(savedInstanceState);
    setContentView(R.layout.playlist);
    final ListView listView = (ListView) findViewById (R.id.playlists);

    listView.setAdapter(new ArrayAdapter<String>            (this,R.layout.single_list_item,SKINS));

    listView.setTextFilterEnabled(true);
    listView.setOnItemClickListener(new OnItemClickListener()
    {
        @Override
        public void onItemClick(AdapterView<?> parent, View view,
                int position, long id)
        {
            // When clicked, show a toast with the TextView text
            Toast.makeText(getApplicationContext(),
            ((TextView) view).getText(), Toast.LENGTH_SHORT).show();

            //
            View layout = findViewById(R.layout.activity_main);
            String selectedFromList = (listView.getItemAtPosition(position).toString ());

            if (SKINS [0] == selectedFromList)
            {
                listView.setBackgroundColor(Color.CYAN);
                 //layout.setBackgroundColor(android.R.color.darker_gray);

            }
            else if (SKINS[1] == selectedFromList)
            {
                listView.setBackgroundColor(Color.BLACK);
                //layout.setBackgroundColor(android.R.color.black);
            }


                //

                finish();
            }
        });

    }
}

这是主要的 Activity 代码

package cs.pacificu.mypace;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.MenuItem;
/*import com.actionbarsherlock.app.ActionBar;
import com.actionbarsherlock.view.MenuItem;
import com.actionbarsherlock.view.MenuInflater;*/
import android.view.View;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        //setContentView(R.layout.activity_main);
        startPlaylists(null);
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu)
    {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);

        return true;
    }

    @Override
    public boolean onOptionsItemSelected (MenuItem item)
    {
        switch (item.getItemId()) {
        case R.id.skin:
            changeSkin();
            return true;
        case R.id.action_settings:
            settingsList();
            return true;
        default:
            return super.onOptionsItemSelected(item);
        }
    }

    public void startPlaylists (View view)
    {
        Intent intentPlaylists = new Intent();
        intentPlaylists.setClassName("cs.pacificu.mypace", "cs.pacificu.mypace.Playlist");
        intentPlaylists.setAction("@strings/action_playlists");
        startActivity(intentPlaylists);
    }

    public void changeSkin ()
    {
        Intent intentSkin = new Intent();
        intentSkin.setClassName("cs.pacificu.mypace", "cs.pacificu.mypace.Skin");
        intentSkin.setAction("@strings/action_skin");
        startActivity(intentSkin);
    }

    public void settingsList ()
    {
        Intent intentSettings = new Intent();
        intentSettings.setClassName("cs.pacificu.mypace", "cs.pacificu.mypace.Settings");
        intentSettings.setAction("@strings/action_settings");
        startActivity(intentSettings);
    }

}

谢谢!

最佳答案

把这个放在你的 xml

android:background="#025cd8" 

取决于您选择的颜色。

关于android - 如何跨 Activity 更改背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16008918/

相关文章:

android - 配置 'compile'已过时,已被 'implementation'和 'api'取代。有人可以帮我解决此错误吗?

ios - QuickBlox:架构 arm64 的 undefined symbol

溢出可见时 CSS 背景消失

javascript - 我怎样才能让这个 Codepen 项目成为我网站的背景?

java - 使用从 Activity 传递的数据更新 Fragment UI

android - 为什么我经常收到 ActivityNotFound 异常?

java - 越来越多的线程导致我的应用程序滞后

windows - 我最新的 Windows 10 SDK 安装不包含 rc.exe 和 rcdll.exe,因此出现 LNK1158 错误

flutter - 我在 Flutter SDK 中使用哪个 channel ?

ios webview流后台模式