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