在我的项目中,我扩展了一些类,例如Button类,并在扩展类中管理了一些事件。这是代码:
public class MySpecificButton extends Button{
public MySpecificButton(Context context) {
super(context);
onButtonClick();
}
public MySpecificButton(Context context, AttributeSet attrs) {
super(context, attrs);
onButtonClick();
}
public MySpecificButton(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
onButtonClick();
}
public void onButtonClick() {
this.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Context context = getContext();
LayoutInflater factory = LayoutInflater.from(context);
final View addGameDialogView = factory.inflate(R.layout.dialog_add_console, null);
final AlertDialog addGameDialog = new AlertDialog.Builder(context).create();
addGameDialog.setView(addGameDialogView);
ListView listView = (ListView)addGameDialogView.findViewById(R.id.lstView_AllConsole);
String[] arrayList = {"Playstation 1", "Playstation 2","Playstation 3", "Playstation 4","Playstation Portable", "Playstation Vita","Xbox", "Xbox 360","Xbox One", "Wii","Wii U", "Ds","3DS"
, "Skyrim"};
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(context, android.R.layout.simple_list_item_1, arrayList);
listView.setAdapter(arrayAdapter);
addGameDialogView.findViewById(R.id.btn_closeAddConsole).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
addGameDialog.dismiss();
}
});
addGameDialog.show();
}
});
}
}
在XML文件中添加了这个:
<mygames.mygamesapp.eu.myapplication.ExtendedClasses.MySpecificButton
android:layout_width="42dp"
android:layout_height="42dp"
android:id="@+id/btn_addConsole"
android:layout_gravity="center_horizontal"
android:background="@drawable/ic_add_circle_outline_black_24dp" />
我只对需要大量代码的对象执行此操作,以便MainActivity类更易于阅读和管理。我知道这是否是一个很好的实践..谢谢
答案 0 :(得分:0)
按钮是一个视图;不要用它作为控制器或型号〜 在你的代码中,你让按钮做了太多工作〜 没有人像这样使用它。