2015-11-22 52 views
0

我想用不同的方式声明按钮和其他组件,wonna减少我的代码行。 所以,我想是这样的:将数组用于组件声明perpouses

public class Main extends Activity { 
      EditText[] Items; 
      TextView[] Total; 
      String[] ids = {"editText1","editText2","textView8","textView7"}; 
      @Override 
      protected void onCreate(Bundle savedInstanceState) { 
       super.onCreate(savedInstanceState); 
       setContentView(R.layout.activity_main); 
       for(int i=0;i<2;i++){ 
        Items[i]=(EditText)findViewById(R.id.ids[i]);` 
       } 
      } 
     } 

它不工作,你明白我wonna做些什么?可能吗 ?

+0

你究竟是什么意思是不工作?所以你会得到错误?预期的行为是什么? – EkcenierK

+0

我只是不想写 next =(Button)findViewById(R.id.button1); back =(Button)findViewById(R.id.button2); others =(Button)findViewById(R.id.button3); 只是一个for循环,将它们保存在一个数组中。 –

回答

1

R.id.Something是自动生成的常量。

你不能使用字符串指代他们。

如果你声明为INT consts的数组你可以遍历: int[] ids = new int[]{R.id.editText1,R.id.editText2,R.id.textView8,R.id.textView7};

然后 Items[i]=(EditText)findViewById(ids[i]);

0

R.id .someting实际上是一个int值,您可以在项目中获得表单R文件,例如常量值。你不能像串一样使用它。如果你是初学者,在你的项目中找到R文件有点棘手,但是当你发现它时,你会发现你的xml文件中的所有视图都有通过R.id.name连接的int值。