您的位置:首页 > 其它

【总结】在两个Activity之间进行跳转时出错原因分析(一)——findViewById位置不当导致

2013-11-22 20:32 411 查看
在两个Activity之间进行跳转时,程序出错了,提示“意外停止”,起初很纳闷,因为程序很简单,而且很多都是从以前程序上复制的,怎么会出错呢。部分源程序如下:

OnClickListener mImageViewoneL = new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
//
Log.i(TAG,"进入mImageViewoneL");
Intent intent = new Intent(MainActivity.this, MyGalleryone.class);
startActivity(intent);
}
};


上面的那个方法就是希望,当click一个ImageView时,进入一个Gallery,在Gallery的程序如下:

ublic class MyGalleryone extends Activity{

Gallery gallery = (Gallery) findViewById(R.id.gallery);
ImageView fImageView;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.galleryone);
gallery.setAdapter(new ImageAdapter(this));

}


(上述程序有省略)

结果就出错了。

后来经过分析发现,出错的地方很隐蔽。

出错的地方为:

Gallery gallery = (Gallery) findViewById(R.id.gallery);
我们不应该在此处就给gallery赋值,而应该改为如下代码:

public class MyGalleryone extends Activity{

Gallery gallery;
ImageView fImageView;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.galleryone);
gallery = (Gallery) findViewById(R.id.gallery);
gallery.setAdapter(new ImageAdapter(this));

}


这样程序就可以正常运行了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: