Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/224.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 从另一个活动引用和更改活动元素_Android - Fatal编程技术网

Android 从另一个活动引用和更改活动元素

Android 从另一个活动引用和更改活动元素,android,Android,我有两个活动,一个是主要的活动,另一个是作为第一个活动设置场所的活动。例如,我有一个开关,它想将布局从主活动设置为setVisibility(View.INVISIBLE)或setVisibility(View.VISIBLE) 我的问题是,当我试图引用l5(主活动中布局的名称)时,它无法识别它。我在主要活动中将其设置为公共,这不是它的工作原理吗?如果它是公共的,它可以用于其他活动 这只是一个例子,我想在这里做更多的设置,比如设置导航抽屉的alpha,或者在主活动中更改editText的字体大小

我有两个活动,一个是主要的活动,另一个是作为第一个活动设置场所的活动。例如,我有一个开关,它想将布局从主活动设置为
setVisibility(View.INVISIBLE)
setVisibility(View.VISIBLE)

我的问题是,当我试图引用
l5
(主活动中布局的名称)时,它无法识别它。我在主要活动中将其设置为公共,这不是它的工作原理吗?如果它是公共的,它可以用于其他活动

这只是一个例子,我想在这里做更多的设置,比如设置导航抽屉的alpha,或者在主活动中更改
editText
的字体大小


那么,我如何设置一个可以改变其他活动内容的活动呢?

不,这不是它的工作原理:) 在android中,活动代表屏幕。他们确实可以直接接触其他成员。你可以做的是在屏幕之间传递“Itents”(携带你需要的任何信息)或有某种全局存储(两个屏幕都可以访问)并将数据放在那里。
有关活动的更多信息,请访问:

Android中同一应用程序的活动之间共享数据的示例:

public class OptionsActivity extends Activity  {

SharedPreferences _settings;

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.options);

    // We need an Editor object to make preference changes.
    // All objects are from android.context.Context
    _settings = getSharedPreferences(STATIC_PROPERTY.PREFS_NAME, 0);

    Spinner spBackground = (Spinner) findViewById(R.id.backgroundsThemeSelect);

    spBackground.setOnItemSelectedListener(new OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parent, View view, int pos,
                long id) {
            SharedPreferences.Editor editor = _settings.edit();

            int backgroundID = 0;
            switch (pos){
                default:
                case 0:
                    backgroundID = R.drawable.grass;
                    break;
                case 1:
                    backgroundID = R.drawable.earth;
                    break;
                case 2:
                    backgroundID = R.drawable.water;
                    break;
            }
            editor.putInt("background", backgroundID);

            // Commit the edits!
            editor.commit();                
        }
    });
....
}

希望这有帮助:)

查看了您提供的链接,仍然不知道如何做我想做的事情,lol=),当我有时间时,我将提供一个您正在寻找的这样一件事情的示例,证明我们正在讨论一个配置活动,对吗?谢谢,刚才我正在看一些共享首选项的教程,呵呵,谢谢,你的例子帮助我更好地理解了它的工作原理!祝您有个美好的一天!
public ConsumerView(Context context, AttributeSet attrs) {
    super(context, attrs);

    SharedPreferences settings = context.getSharedPreferences(PREFS_NAME, 0);
            int backgroundID = settings.getInt("background", R.drawable.water);
            setBackgroundDrawable(_appResources.getDrawable(backgroundID));
            ....
}
    ....
}