看看生成的R.java里有game_sudo_view吗?

解决方案 »

  1.   

    有的public static final class id {
            ……
            public static final int gallery01=0x7f080018;
            public static final int game_sudo_view=0x7f080011;
            public static final int gamegridview=0x7f080010;
            public static final int grid_image=0x7f080013;
            public static final int grid_text=0x7f080014;
            public static final int leveltextview=0x7f080012;
            ……
        }
      

  2.   

    public static final class id {
            ……
            public static final int gallery01=0x7f080018;
            public static final int game_sudo_view=0x7f080011;
            public static final int gamegridview=0x7f080010;
            public static final int grid_image=0x7f080013;
            public static final int grid_text=0x7f080014;
            public static final int leveltextview=0x7f080012;
            ……
        }
      

  3.   

    也是,没有就编译有问题了。
    你的那个view能正确显示吗?
      

  4.   

    可以正常显示的,我本来是想获取那个id然后在线程里更新view的,但是一直都是空指针
      

  5.   

    或许这个view自己弄了个window去显示
      

  6.   

    findViewByid是在Activity自己的window上查找的你有那个view的代码吗?不行就自己动态在代码里创建view好了
      

  7.   

    有代码,有点长,我简略贴出来
    public class GameView extends View{

            ……
    public GameView(Context context,AttributeSet a){
           ……
    }

    //自定义view的宽高
    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
    int width = game.getScreenWidth();
    int height = game.getScreenHeight()-game.getScreenHeight()/4;
    setMeasuredDimension(width, height);
    //自定义view的宽高时,不实用下面函数
    //super.onMeasure(widthMeasureSpec, heightMeasureSpec);
    }
     
    @SuppressLint("DrawAllocation") @Override
    protected void onDraw(Canvas canvas) {
    ……
    super.onDraw(canvas);
    }
    ……
    }
      

  8.   

    我试过这样引用
    LayoutInflater inflater = (LayoutInflater)getSystemService(LAYOUT_INFLATER_SERVICE);     
    View view = inflater.inflate(R.layout.gameview,null);
    gameView = (GameView) view.findViewById(R.id.game_sudo_view);
    也试过clean项目了,但不知怎么解决
      

  9.   

    哦,那就百度“android动态创建控件”
      

  10.   

    暂时用oyq_yangy的方法解决了需求
      

  11.   

    如果直接在activity里面使用findViewById(),完整的形式是this.findViewById().所以想获取另外xml的控件,通过获取的view来调用findViewById,例如(我的主布局是main.xml,要获取myview.xml的imageview)
    public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);        inflater=(LayoutInflater)getSystemService(LAYOUT_INFLATER_SERVICE);
            View view=inflater.inflate(R.layout.myview, null);
            ImageView view1=(ImageView)view.findViewById(R.id.imageview);
    这样之后就可以获取到正确的控件了
      

  12.   

    果然 啊,比如说你要获取viewpager下某个页面中的button, 你得先用LayoutInflater inflater = LayoutInflater)getSystemService(LAYOUT_INFLATER_SERVICE);     
    View view = inflater.inflate(R.layout.gameview,null); 这种方式获取到这个页面,然后用view.findviewbyid才能找到这个button 否则会报空指针异常。