我正在创建一个todo列表类型的应用程序。这是一个有7个屏幕的应用程序来设置目标并完成它。截屏here。现在编码时我发现代码中有很多冗余,比如:
1>对于7周的一天,我需要创建7个片段,然后我需要执行完全相同的操作的所有7个片段。我可以用7个片段做这个吗?
2 - ;现在有15个复选框和15个textview用于所有 - 我需要获得一个引用,然后分别对每个操作执行onclick操作,并在每个用户尝试修改它们时使用settext和gettext。
这是textview修改代码之一:
ptext2 = (TextView) view.findViewById(R.id.p_textview2);
ptext2.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View view) {
AlertDialog.Builder alertDialog = new AlertDialog.Builder(getActivity());
alertDialog.setTitle("Target");
alertDialog.setMessage("Set your target");
final EditText input = new EditText(getActivity());
alertDialog.setView(input);
alertDialog.setPositiveButton("Set", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
String targetInp = input.getText().toString();
ptext2.setText(targetInp);
p2 = ptext2.getText().toString();
addEventsToDB();
}
});
alertDialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
}
});
alertDialog.show();
return true;
}
});
类似地,还有15个用于textview,然后是复选框,我需要为所有7个片段执行此操作。 Here is my full code of one of the fragment
由于这类应用程序是大多数学习Android开发的用户的第一个应用程序,应该采取哪些措施来改进此代码?
编辑: 对于多个按钮onclick listener,我正在创建一个内部类,然后使用switch进行按钮特定操作。
switch(view.getId()){
case R.id.id1:
//do something
break;
.....
}
来自this SO answer。现在我只需要弄清楚如何处理7个片段(可以用一个片段完成吗?)
答案 0 :(得分:2)
如何命名View.OnLongClickListener
类的实现,如:
class OnDayClickListener extends View.OnLongClickListener {
@Override
public boolean onLongClick(final View view) {
// here use view instead of ptext2
}
}
然后使用
ptext2.setOnLongClickListener(new OnDayClickListener());
// this repeats for every textbox