如何使用for循环Android设置imagebutton资源

时间:2013-06-08 04:28:26

标签: android for-loop imagebutton

如何使用for循环为一系列图像按钮设置相同的图像资源?

ImageButton b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13, b14,
        b15, b16, b17, b18, b19, b20, b21, b22, b23, b24, b25, b26, b27,
        b28, b29, b30;

public void setresource() {
    for (int i = 0 ; i <= 15; i++){
        b[i].setImageResource(R.drawable.playzz);
    }
}

上述代码在b[i]

上出错
  

表达式的类型必须是数组类型,但它已解析为int

1 个答案:

答案 0 :(得分:2)

尝试以下方法。您尚未初始化ImageButton

   ImageButton b[];    

在你的onnCreate(param)

  b = new ImageButton[15]; 
  for (int i = 0 ; i <15; i++){
    b[i] = new ImageButton(ActiivtyName.this);
    b[i].setImageResource(R.drawable.playzz);        
}

还要记住将按钮添加到布局的根视图中。

示例:

您也可以以编程方式设置布局。您可以使用使用线性布局或相对布局设置布局参数。将图像按钮添加到布局中,并将内容设置为活动。

根据您的要求修改以下内容。

activity_main.xml中

<?xml version="1.0" encoding="utf-8"?>
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout 
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:id="@+id/ll"
tools:context=".MainActivity" >
</LinearLayout> 
</ScrollView>

MainActivity.java

public class MainActivity extends Activity {   
ImageButton b[]; 
LinearLayout ll;
protected void onCreate(Bundle savedInstanceState) {   
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    ll = (LinearLayout) findViewById(R.id.ll);// initialize linearlayout           
    setresource();
}
public void setresource()
{
       b = new ImageButton[15];
       for (int i = 0 ; i < 15; i++){
        b[i]= new ImageButton(MainActivity.this); // initilize
        b[i].setMaxWidth(40); // set the maxwidth
        b[i].setImageResource(R.drawable.ic_launcher); // set background image
        ll.addView(b[i]); // add the imagebutton to the linearlayout
       }
  }
}