2015-02-24 63 views
0

我从ActionBarActivity扩展了BaseActivity,其中我设置了活动的内容。在我使用的布局文件中有一个FrameLayout如何从扩展活动中扩展布局?

当我扩展BaseActivity以用于例如MainActivity,我想MainActivity用自定义布局文件来扩充FrameLayout

我无法想出一个解决方案。我总是有错误。这是我走多远。

BaseActivity.java

public class BaseActivity extends ActionBarActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.base); 
    } 
} 

MainActivity.java

public class MainActivity extends BaseActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
    } 

    @Override 
    public View onCreateView(View parent, String name, Context context, AttributeSet attrs) { 
     FrameLayout mFrame = (FrameLayout) findViewById(R.id.content); 
     mFrame.addView(LayoutInflater.from(context).inflate(R.layout.activity_nav_test, mFrame, true)); 
     return super.onCreateView(parent, name, context, attrs); 
    } 

非常感谢您的帮助! Chris

回答

0

您的方法似乎是正确的,但在onCreate方法中的框架布局中添加视图。

公共类MainActivity扩展BaseActivity {

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 


FrameLayout mFrame = (FrameLayout) findViewById(R.id.content); 
     mFrame.addView(LayoutInflater.from(this).inflate(R.layout.activity_nav_test, mFrame, true)); 
} 
+0

我在哪里从的onCreate获取上下文? – Chris 2015-02-24 14:02:06

+0

使用'this',检查我更新的答案 – 2015-02-24 14:28:52

+0

当我将最后一行改为'LayoutInflater.from(this).inflate(R.layout.activity_nav_test,mFrame,true)时, – Chris 2015-02-24 14:44:20

0

在这种方法中:

@Override 
public View onCreateView(View parent, String name, Context context, AttributeSet attrs) { 
    FrameLayout mFrame = (FrameLayout) findViewById(R.id.content); 
    mFrame.addView(LayoutInflater.from(context).inflate(R.layout.activity_nav_test, mFrame, true)); 
    return super.onCreateView(parent, name, context, attrs); 
} 

你必须回到乌尔自定义视图。尝试这个。我希望它能帮助

return mFrame;