当前位置: 编程技术>移动开发
本页文章导读:
▪View种分析 View类分析
一、注意事项:
1).View不可见时不要去获取其属性值甚至是普通类变量。如当View不可见时你调用getLocationOnScreen()方法返回值有可能是错的。
2).View在执行动画时.........
▪ Activity其间的数据传递_Intent和startActivityForResult的使用 Activity之间的数据传递_Intent和startActivityForResult的使用
本节主要讨论下Activity之间(A和B)的数据该如何传递。1、A->B:A跳转到B的同时,将一些数据传递给B代码实现:很简单,只需在A中生.........
▪ 揭示“.is missing required source folder: 'gen'”的解决 提示“...is missing required source folder: 'gen'”的解决
解决的办法是:将该目录下生成的R.java删除,工程会重新生成一个,就OK了。有的eclipse的版本里可能需要刷新一下工程,有的不需 要。
......
[1]View种分析
来源: 互联网 发布时间: 2014-02-18
View类分析
一、注意事项:
1).View不可见时不要去获取其属性值甚至是普通类变量。如当View不可见时你调用getLocationOnScreen()方法返回值有可能是错的。
2).View在执行动画时千万不要执行将它从其父容器移出等类似方法。
[2] Activity其间的数据传递_Intent和startActivityForResult的使用
来源: 互联网 发布时间: 2014-02-18
Activity之间的数据传递_Intent和startActivityForResult的使用
本节主要讨论下Activity之间(A和B)的数据该如何传递。
1、A->B:A跳转到B的同时,将一些数据传递给B
代码实现:很简单,只需在A中生成Intent的时候,将需要传递的数据放到Intent中,如下:(1)A
这里由于只是想传递个“Tom&jerry”给B,所以只需要使用intent.putExtras(String,String)即可,本例中使用bundle封装一次主要是考虑到如果有略微复杂的数据可以使用bundle的方式
(2)B
在B中接受A传递过来的数据,只需在B的oncreate()中如下处理:
2、B得到数据后,还想返回A(或者将数据处理一下再返回给A),假设此时A已经finish了,我们想把数据带回A去
我们是不是还得像1一样重新将数据封装一次呢,如果这个数据数据的封装过程是很麻烦的,岂不是很糟糕?答案是否定的。我们可以在A中使用startActivityForResult(intent,0)来启动B,0为下一个activity要返回的依据,并重写onActivityResult方法,如下:
(1)在A中,跳转到B时不使用startActivity(intent)而是使用:
(2)在A中,重写onActivityResult方法
(3)在B中,使用一个“返回B”的按钮,在其onclick中只需一句
其实,在B中直接使用startActivity(B.this,A.class),并在A的oncreate中判断Intent中有没有数据,有的话就带入数据,没有就传入null值,这样的方式也是可以实现,不过略显麻烦,既然系统提供给我们了这种startActivityForResult的方式,我们为什么不用呢?
本节主要讨论下Activity之间(A和B)的数据该如何传递。
1、A->B:A跳转到B的同时,将一些数据传递给B
代码实现:很简单,只需在A中生成Intent的时候,将需要传递的数据放到Intent中,如下:(1)A
Intent intent = new Intent(); intent.setClass(A.this, B.class); Bundle bundle = new Bundle(); bundle.putString("story", "Tom&jerry"); intent.putExtra("tag", bundle); startActivity(intent);
这里由于只是想传递个“Tom&jerry”给B,所以只需要使用intent.putExtras(String,String)即可,本例中使用bundle封装一次主要是考虑到如果有略微复杂的数据可以使用bundle的方式
(2)B
在B中接受A传递过来的数据,只需在B的oncreate()中如下处理:
Intent intent = getIntent(); Bundle bundle = intent.getBundleExtra("tag"); String storyName = bundle.getString("story");
2、B得到数据后,还想返回A(或者将数据处理一下再返回给A),假设此时A已经finish了,我们想把数据带回A去
我们是不是还得像1一样重新将数据封装一次呢,如果这个数据数据的封装过程是很麻烦的,岂不是很糟糕?答案是否定的。我们可以在A中使用startActivityForResult(intent,0)来启动B,0为下一个activity要返回的依据,并重写onActivityResult方法,如下:
(1)在A中,跳转到B时不使用startActivity(intent)而是使用:
startActivityForResult(intent, 0);
(2)在A中,重写onActivityResult方法
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { // TODO Auto-generated method stub switch (resultCode) { case RESULT_OK: Bundle bundle = data.getBundleExtra("tag"); String storyName = bundle.getString("story"); tv1.setText(storyName); break; default: break; } }
(3)在B中,使用一个“返回B”的按钮,在其onclick中只需一句
B.this.setResult(RESULT_OK,intent);即可实现返回A界面,并把数据传回给A,intent中的数据可以为A最开始传过来的数据,也可以是经过B处理过的数据。
其实,在B中直接使用startActivity(B.this,A.class),并在A的oncreate中判断Intent中有没有数据,有的话就带入数据,没有就传入null值,这样的方式也是可以实现,不过略显麻烦,既然系统提供给我们了这种startActivityForResult的方式,我们为什么不用呢?
[3] 揭示“.is missing required source folder: 'gen'”的解决
来源: 互联网 发布时间: 2014-02-18
提示“...is missing required source folder: 'gen'”的解决
解决的办法是:将该目录下生成的R.java删除,工程会重新生成一个,就OK了。
有的eclipse的版本里可能需要刷新一下工程,有的不需 要。
解决的办法是:将该目录下生成的R.java删除,工程会重新生成一个,就OK了。
有的eclipse的版本里可能需要刷新一下工程,有的不需 要。
最新技术文章: