0

我有主菜单。有 3 个不同的 ImageButtons 用于开始新的活动。一切正常,但我想知道是否有另一种编码方式。我从带有一个按钮的示例代码中获取了这个,我认为它看起来不太好:为每个按钮设置新的 OnClickListener() 。

public class MainMenu extends Activity implements OnClickListener{

ImageButton firstModule;
ImageButton secondModule;
ImageButton thirdModule;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main_menu);

    //init buttons
    firstModule =  (ImageButton) findViewById(R.id.imageButton1);
    secondModule = (ImageButton) findViewById(R.id.imageButton2);
    thirdModule =  (ImageButton) findViewById(R.id.imageButton3);

    firstModule.setOnClickListener(this);
    secondModule.setOnClickListener(this);
    thirdModule.setOnClickListener(this);
}
public void onClick(View v) {

    switch(v.getId()){
    case R.id.imageButton1:
        startActivity(new Intent(MainMenu.this, BasicFunctions.class));
        break;
    case R.id.imageButton2:
        startActivity(new Intent(MainMenu.this, GpsModule.class));
        break;
    case R.id.imageButton3:
        startActivity(new Intent(MainMenu.this, Graphic3D.class));
        break;
    }

}

}

4

1 回答 1

3

更优雅的方法是View.OnClickListener在你的内部实现Activity,然后在你的onClick()方法内部处理点击Activity。它为您提供了一个View对象作为参数,您可以使用该view.getId()方法检索视图的 id,然后您可以使用该块为布局中switch的每个执行操作。Button希望这可以帮助。

于 2012-09-02T22:33:34.913 回答