我有MainMenu。有3种不同的ImageButtons用于启动新活动。一切正常,但我想知道是否有可能采用另一种方式对此进行编码。我用一个按钮从示例代码中获取了这个,我觉得它看起来不太好:为每个按钮设置 new 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;
}
}
}
答案 0 :(得分:3)
更优雅的方法是在View.OnClickListener
内实施Activity
,然后在onClick()
的{{1}}方法内处理点击次数。它为您提供了一个Activity
对象作为参数,您可以使用View
方法检索视图的ID,然后您可以使用view.getId()
块为每个switch
实施操作在你的布局中。希望这会有所帮助。