我在xml里面 定义了5个 button 分别为R.id.am1 R.id.am2  R.id.am3  R.id.am4  R.id.am5前台我做判断循环  然后 findviewbyid(R.id.am + i)
i 是循环的数
但是为什么不可以 拼接缺德 id 呢。。总部行啊

解决方案 »

  1.   

    R.id.am1 R.id.am2 这些是一个整体的 他表示你那个空间的Id号 ,不同于字符串,这个是不能拼接的
      

  2.   

    你可以借鉴一下 javascript 里面的eval这个方法,我在网上也查过了;这个是可以实现的;就是执行这个字符串,比如说 eval("R.id.xxx"+num);
      

  3.   

    最好不要这么拼接,你可以去R.java文件里看下,虽然有可能确实连续,但这么用说不定哪天突然冒bug了。lz可以试下
    (for int i=1;i<5;i++){
     findViewById(R.id.am1+i);
    ...
    }
      

  4.   

    可以实现的,用循环方式
    (Button) this.findViewById(getResources().getIdentifier("am" + i, "id", getPackageName()));
      

  5.   

    R.id.XXX--->取得的是R类中的某个ID所代表的指向。
    你循环就是i的值,它们不是同一个东西
      

  6.   

    还有findviewbyid(R.id.am + i) 中的结果就是:
    比如R.id.am指向的是1000,则(R.id.am + i)就成1001了
      

  7.   

    id是在编译期间由aapt编译生成的,都在R.java中,没有顺序可言
      

  8.   

    findviewbyid((R.id.am) + i),这样试一下吧,我感觉理论上应该可以,但是我从来没有这样用过。总共才五个没必要这样。而且控件的ID尽量也起有意义的名字。
      

  9.   

    findViewById   id是个int类型 (程序在R.java中生成的一个数值 位置)
      

  10.   

    关健在于拼出来的是不同的id名称
    而不是第一个id取得的值加1
    五楼的方法你可以用循环试试,你的id要设定好
    超出范围会报错