为什么要在Android中将布局扩展到另一个布局?

时间:2012-03-05 20:35:59

标签: android

我是Android开发的新手,我想创建具有页眉,正文和页脚的应用程序,通过点击页脚中的一个按钮,一些布局将被加载到正文中。我使用了某种" MasterPage"正如here所述。 按下按钮时,既未加载new_exercise布局也未加载exercises布局。为什么?也许不是所有这些我应该使用任何类型的标签?或者也许我不能夸大布局并应该创建新的活动?

这里是BaseActivity和NewExercise活动的代码:

public class BaseActivity extends Activity{
    LinearLayout linBaseBody;

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

        linBaseBody = (LinearLayout)findViewById(R.id.base_body);

        initButtons();
    }
    @Override
    public void setContentView(int id) {
        LayoutInflater inflater = (LayoutInflater)getBaseContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        inflater.inflate(id, linBaseBody);
    }

    private void initButtons()
    {
        Button btn1 = (Button) findViewById(R.id.newEx);
        btn1.setOnClickListener(new View.OnClickListener() {
              public void onClick(View view) {
                  setContentView(R.layout.new_exercise);
              }
        });
        Button btn2 = (Button) findViewById(R.id.showAllEx);   
        btn2.setOnClickListener(new View.OnClickListener() {
              public void onClick(View view) {
                  setContentView(R.layout.exercises);
              }
        });
    }

public class NewExercise extends BaseActivity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        super.setContentView(R.layout.new_exercise);
    }
}
public class Exercises extends BaseActivity {    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);        
        setContentView(R.layout.exercises);
    }       
}

1 个答案:

答案 0 :(得分:1)

如何编写代码,使用新的Activity会更有意义。但是,如果您想将所有视图保留在一个Activity中,则可以遍历所有调用mLayout.setVisible(View.VISIBLE)的布局;或者你可以使用ViewStubs。

至于回答你的问题,为什么,你正在做的是将视图(和它们的布局)直接添加到你已创建和膨胀的内容视图(你在onCreate中创建的视图)。您需要首先清除活动内容视图以查看您使用按钮所做的更改。

相关问题