在android中设置内容视图

时间:2012-03-16 05:04:14

标签: android

public class CheckitoutActivity extends Activity {

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

    void change() {
        setContentView(R.layout.someview);
    }
}

它不会在功能更改中将视图设置为某个视图。我做错了什么。

5 个答案:

答案 0 :(得分:3)

  1. 在设置新视图之前删除所有其他视图。
  2. 尝试调试程序,我不确定是否实际调用了change()(?)。如果它没有被调用,则android进程回调无法识别change()...您可以在onResume()中编写代码....了解有关Activity类here的更多信息。当我请参阅change()不是Activity中的函数...

    public class Activity扩展ApplicationContext {      protected void onCreate(Bundle savedInstanceState);

     protected void onStart();
    
     protected void onRestart();
    
     protected void onResume();
    
     protected void onPause();
    
     protected void onStop();
    
     protected void onDestroy();
    

    }

  3. 在实现基类的方法时也使用@Override和函数定义,这是一个很好的做法......

答案 1 :(得分:2)

您无法动态更改Activity的布局,您必须先从活动中删除所有视图,然后向活动添加新视图,或者只使用一些鳍状肢控件动态更改视图。

答案 2 :(得分:1)

尝试添加在之后调用change()函数的事件 setContentView(R.layout.main);,例如:

Button changeButton=null; 
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    changeButton= this.findViewById(R.id.change_button);
    changeButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            change();
        }
    });
}

答案 3 :(得分:0)

R.java文件由android本身生成。它具有区分大小写。如下面的代码

void change()
{
    setContentView(R.layout.someview);
}

答案 4 :(得分:0)

你没有做任何事情,就像在一个oncreate()中调用两个内容视图一样。 使用flipviews