不是这样的,,你获取的Id 跟你当前setViewConten();是无关的,我刚刚接触android ,,刚刚遇到过这样的问题。。

解决方案 »

  1.   

    多谢你的回复。那奇怪了
    我的.java文件对应的是setContentView(R.layout.main);我的另一个xml文件是my.xml,里面有
    <Button android:text="ggyy" android:id="@+id/btb" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>R文件里面也有id 为 public static final int btb=0x7f060009;了但我在.java文件里面
    Button btb = (Button)findViewById(R.id.btb);得到btb总是为null奇了怪了
      

  2.   

    没事,我也是总是问别人问题,,也是刚刚接触android的,,不过我看你写的代码对着呢,,,
      

  3.   

    用LayoutInflater把my.xml中的view取出来,然后再获得,应该能获得btb。LayoutInflater inflater = null;
    inflater = LayoutInflater.from(context);
    View view = inflater.inflate(R.layout.my, null);
    Button btb = (Button)view.findViewById(R.id.btb);ps:本人初学,说的不对还请见谅。
      

  4.   

    findViewById 是Activity的方法,所以肯定是找setContentView设置的view中的
      

  5.   

    多谢几位
    4楼方法得到btb不为null了我的代码中
    有 LinearLayout root = (LinearLayout)findViewById(R.id.root);
    想把btb放入到root中,代码为
    root.addView(btb);程序运行老是出错误。这个怎么解决呢???其他xml得到的控件不能addView到root中????
      

  6.   

    最后的办法就是你把相关code整上,findViewById找不到就很奇怪
      

  7.   

    现在的问题不是findViewById找不到而是LayoutInflater得到的btb不能addView到root中(root和btb都不为空)程序中一加上
    root.addView(btb);
    这一句就会在运行中出错。
      

  8.   

    如果没有setContentView(某布局文件);那个这个布局文件中的控件,就不存在内存中。
      

  9.   

    那是不是就表明   不能用没有setContentView(某布局文件) 的布局文件?
    不在内存中的话,为什么LayoutInflater得到的btb不为空呢????
      

  10.   

    root.addView(btb);能这么加么冒是没见过。。你的btb在一个xml中。你又加入其它的xml中你为什么不直接new 一个button呢new 完直接加入肯定不会出错。你不觉得你这样能纠结么。。
      

  11.   

    new 一个btb 然后 root.addView(btb) 这么加没问题啊。
    为什么这么纠结呢,原因前面提到了 xml文件时图形化的布局,总是方便点。
      

  12.   

    楼主的想法应该是可以实现的,要不怎么能体现Android xml定义界面的优势呢试试看直接使用View view = inflater.inflate(R.layout.my, null); 这里的view添加上去会不会出错,然后把出错logcat日志找出来,看什么原因?
      

  13.   

    按照#13楼 直接addview View view = inflater.inflate(R.layout.my, null); 
    这个view到是可以。。为什么addview view 里面的btb就不行呢???是我什么地方可能弄错了??
      

  14.   

    那你看错误提示是什么呀 估计是不行的
    以后整个小局部的布局用xml做好,然后添加入,也能够符合你的预期
      

  15.   

    错误是:
    03-15 07:07:29.652: ERROR/AndroidRuntime(1112): java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
      

  16.   

    解决了,调用btb的parent的removeView方法,解除他们之间的父子关系