1

我正在膨胀 xml,并从这个 xml 创建视图。我需要修改图像的宽度,但出现 NullPointerException。

我的代码是:

for (int o = 0; o < study.size(); o++) {
     LayoutInflater li_est= (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    final View vEst = li_est.inflate(R.layout.study_details, null);

 line = (ImageView)findViewById(R.id.img_line);

 if (getResources().getConfiguration().orientation==Configuration.ORIENTATION_LANDSCAPE) {
      **// HERE NEED CHANGE WIDTH OF LINE BUT I GET THE EXCEPTION**
}

我尝试通过以下方式这样做:

 1.     line.getLayoutParams().width = 20;
 2.     line.setMaxWidth(20);
 3.     line.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));

我认为问题来自通货膨胀,任何解决方案,谢谢你,我为我糟糕的英语道歉。

4

2 回答 2

2
 final View vEst = li_est.inflate(R.layout.study_details, null);
 line = (ImageView)vEst.findViewById(R.id.img_line);

可能 line 是在 stud_details布局内声明的,因此您需要vEst对象来检索它

于 2012-11-30T08:30:29.427 回答
1

你必须在膨胀的视图上执行 findViewById() ......所以这样做:

最终视图 vEst = li_est.inflate(R.layout.study_details, null); line = (ImageView) vEst .findViewById(R.id.img_line);

于 2012-11-30T08:31:29.363 回答