另外如果用setContentView(R.layout.main);这样来实现,main.xml是什么样的?具体到value值,本人小菜鸟一个,求大神指导。。越详细越好,不甚感激啊!~
8 个解决方案
#1
通过layoutInflate来inflate呗
#2
main.xml是你UI布局文件,R.layout.main嘛其实就是个ID号,这样才能找到这个main.xml布局文件进行布局。
setContentView也可以是直接setContentView(View view),view是你要设置的视图类
setContentView也可以是直接setContentView(View view),view是你要设置的视图类
#3
赞一个
#4
看二楼
从描述看,楼主对Android Project基本结构不了解,给你个链接学习一下:
http://www.cnblogs.com/chunhui588/archive/2010/07/16/android-project-structure.html
setContentView包括其重载方法都可以动态调用,调用后整个界面就会被替换
一楼说的inflater是动态加载布局,常用于ListView、GridView等Item的实现,可以动态加载一个xml布局,然后就可以使用了
从描述看,楼主对Android Project基本结构不了解,给你个链接学习一下:
http://www.cnblogs.com/chunhui588/archive/2010/07/16/android-project-structure.html
setContentView包括其重载方法都可以动态调用,调用后整个界面就会被替换
一楼说的inflater是动态加载布局,常用于ListView、GridView等Item的实现,可以动态加载一个xml布局,然后就可以使用了
#5
Android Project基本结构多少我还是了解一些的,我只是觉得这样创建视图方法有些太死了,想用其它方法来实现。尤其是对gen里的R的使用,因为有很多时候我们不方便直接使用
R,请问有其它方法吗?请问有其它方法吗?
#6
Android的设计就是布局文件根据其名称在R.java内生成对应的ID,然后使用R.layout.xxx来获取布局文件。
不方便直接使用R?未见过这种需求。
#7
自己建viewgroup然后自己一个个view来add
或者自己建canvas 自己绘制
只是少量改动的话 自己重载一个view 然后实现inflate或者ondraw吧
或者自己建canvas 自己绘制
只是少量改动的话 自己重载一个view 然后实现inflate或者ondraw吧
#8
本人来结帖了,哈哈。。。来,我告诉你们怎么动态取R哈,会的可以不看哈~
方法一:
Resources resources = mContext.getResources();
//获取layout文件夹底下的文件的id号
int indentify = resources.getIdentifier(mContext.getPackageName()+":layout/"+"startview", null, null);
方法二:
Resources mRes = mContext.getResources();
int iTitleID = mRes.getIdentifier("quit_dlg_title", "string", mContext.getPackageName());
其实就是用其它方法取代直接调用R的这么一个实现,为什么有这个需求?太简单了,如果做一个项目要用到多个平台,那你的包名要按平台的需求来改,那你程序里要改来改去,岂不烦死?这招好不好使用了再说,哇哈哈!~~是不是很得瑟啊?其实这是俺公司一大牛帮我解决的,厉害啊!~
方法一:
Resources resources = mContext.getResources();
//获取layout文件夹底下的文件的id号
int indentify = resources.getIdentifier(mContext.getPackageName()+":layout/"+"startview", null, null);
方法二:
Resources mRes = mContext.getResources();
int iTitleID = mRes.getIdentifier("quit_dlg_title", "string", mContext.getPackageName());
其实就是用其它方法取代直接调用R的这么一个实现,为什么有这个需求?太简单了,如果做一个项目要用到多个平台,那你的包名要按平台的需求来改,那你程序里要改来改去,岂不烦死?这招好不好使用了再说,哇哈哈!~~是不是很得瑟啊?其实这是俺公司一大牛帮我解决的,厉害啊!~
#1
通过layoutInflate来inflate呗
#2
main.xml是你UI布局文件,R.layout.main嘛其实就是个ID号,这样才能找到这个main.xml布局文件进行布局。
setContentView也可以是直接setContentView(View view),view是你要设置的视图类
setContentView也可以是直接setContentView(View view),view是你要设置的视图类
#3
赞一个
#4
看二楼
从描述看,楼主对Android Project基本结构不了解,给你个链接学习一下:
http://www.cnblogs.com/chunhui588/archive/2010/07/16/android-project-structure.html
setContentView包括其重载方法都可以动态调用,调用后整个界面就会被替换
一楼说的inflater是动态加载布局,常用于ListView、GridView等Item的实现,可以动态加载一个xml布局,然后就可以使用了
从描述看,楼主对Android Project基本结构不了解,给你个链接学习一下:
http://www.cnblogs.com/chunhui588/archive/2010/07/16/android-project-structure.html
setContentView包括其重载方法都可以动态调用,调用后整个界面就会被替换
一楼说的inflater是动态加载布局,常用于ListView、GridView等Item的实现,可以动态加载一个xml布局,然后就可以使用了
#5
Android Project基本结构多少我还是了解一些的,我只是觉得这样创建视图方法有些太死了,想用其它方法来实现。尤其是对gen里的R的使用,因为有很多时候我们不方便直接使用
R,请问有其它方法吗?请问有其它方法吗?
#6
Android的设计就是布局文件根据其名称在R.java内生成对应的ID,然后使用R.layout.xxx来获取布局文件。
不方便直接使用R?未见过这种需求。
#7
自己建viewgroup然后自己一个个view来add
或者自己建canvas 自己绘制
只是少量改动的话 自己重载一个view 然后实现inflate或者ondraw吧
或者自己建canvas 自己绘制
只是少量改动的话 自己重载一个view 然后实现inflate或者ondraw吧
#8
本人来结帖了,哈哈。。。来,我告诉你们怎么动态取R哈,会的可以不看哈~
方法一:
Resources resources = mContext.getResources();
//获取layout文件夹底下的文件的id号
int indentify = resources.getIdentifier(mContext.getPackageName()+":layout/"+"startview", null, null);
方法二:
Resources mRes = mContext.getResources();
int iTitleID = mRes.getIdentifier("quit_dlg_title", "string", mContext.getPackageName());
其实就是用其它方法取代直接调用R的这么一个实现,为什么有这个需求?太简单了,如果做一个项目要用到多个平台,那你的包名要按平台的需求来改,那你程序里要改来改去,岂不烦死?这招好不好使用了再说,哇哈哈!~~是不是很得瑟啊?其实这是俺公司一大牛帮我解决的,厉害啊!~
方法一:
Resources resources = mContext.getResources();
//获取layout文件夹底下的文件的id号
int indentify = resources.getIdentifier(mContext.getPackageName()+":layout/"+"startview", null, null);
方法二:
Resources mRes = mContext.getResources();
int iTitleID = mRes.getIdentifier("quit_dlg_title", "string", mContext.getPackageName());
其实就是用其它方法取代直接调用R的这么一个实现,为什么有这个需求?太简单了,如果做一个项目要用到多个平台,那你的包名要按平台的需求来改,那你程序里要改来改去,岂不烦死?这招好不好使用了再说,哇哈哈!~~是不是很得瑟啊?其实这是俺公司一大牛帮我解决的,厉害啊!~