public class CheckitoutActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
void change() {
setContentView(R.layout.someview);
}
}
它不会在功能更改中将视图设置为某个视图。我做错了什么。
答案 0 :(得分:3)
尝试调试程序,我不确定是否实际调用了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();
}
在实现基类的方法时也使用@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