如何从扩展活动中扩展布局?

时间:2015-02-24 13:12:46

标签: java android android-activity

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

当我将BaseActivity扩展到例如{1}}时使用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);
    }

非常感谢你的帮助! 克里斯

2 个答案:

答案 0 :(得分: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));
}

答案 1 :(得分: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;
相关问题