我有一个名为Main的活动,它的根XML布局是一个相对布局。如何使用Fragment从不同的Activity访问这个相对布局(比如说“BG”)?这是主要活动(它有相对布局):
public class Main extends Activity {
RelativeLayout main; // Its id is "main_layout"
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
@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;
}
}
这是我想要访问主要相对布局的第二个活动:
public class BG extends Activity {
RelativeLayout main;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.bg);
setBackground();
}
@SuppressWarnings("deprecation")
private void setBackground()
{
main = (RelativeLayout)findViewById(R.id.main_layout);???
Bitmap bitmap = BitmapFactory.decodeFile(Environment.getExternalStorageDirectory().getAbsolutePath() + "/bg.jpg");
BitmapDrawable bd = new BitmapDrawable(getResources(), bitmap);
main.setBackgroundDrawable(bd);
}
}
如果我在清单文件中将主要父活动设置为BG,我可以使用此方法吗?
答案 0 :(得分:0)
如何使用Fragment从其他布局访问此相对布局 活动(比方说“BG”)?
你为什么要这样做?
Fragments
旨在由Activities
使用和管理。一个Activity
可以有多个Fragments
。如果您希望UI由两个“根”布局组成,则应该有两个Fragments
及其各自的UI。然后,您可以使用Activity
获取每个Fragments
及其各自布局的参考。
如果您希望所有Activities
分享一些常用功能,您可以创建一个BaseActivity
,并从中获取所有其他Activities
extends
。
如果你想要的是一个常见的背景或者那个问题,可以在xml中定义的一些常见属性你应该使用Theme
,如下面建议的WarrenFaith。
答案 1 :(得分:0)
您只想在整个应用中使用相同的背景?这就是我从这个问题中理解的。如果是这样,您需要查看styles.xml文件并在那里设置背景或其他主题属性。这将适用于您的其余应用程序。因此,您不必为每个布局设置背景。