我不确定我做对了。我怀疑的主要原因是我在这个或其他论坛上找不到做过类似事情的人。
我在我的项目中创建了一个抽象 java 类。将其命名为lib。我把项目中所有其他类使用的几个结构和方法放在那里。
它对我有用,但我想知道是否有更可接受的方法来收集所有常用方法和结构。
注意:当然所有方法都声明为公共静态。
注二:我不知道如何在抽象类中获取上下文,所以如果需要我必须将它作为参数传递给方法。
这是你要找的笏吗?
public abstract class AbstractActivity extends Activity{
public static synchronized boolean showAlertBox(Context ctx,final String title,final String message,final String okBtnTxt,final OnClickListener clickListener){
AlertDialog.Builder alertbox; alertbox = new AlertDialog.Builder(ctx);
this.runOnUiThread(new Runnable() {
@Override
public void run() {
alertbox.setTitle(title);
alertbox.setMessage(message);
if(okBtnTxt!=null || clickListener!=null)
alertbox.setNeutralButton(okBtnTxt,clickListener);
alertbox.show();
.....
}
});
return true;
}
}
在扩展这个抽象类的类中,您可以使用 showAlertBox(this); 来调用它。其他明智的使用 AbstractActivity.showAlertBox(Context);
好吧,感谢@Matt Wolfe 的评论,我才知道我所做的被称为“实用程序类”,它被广泛用于在项目中共享通用代码。通用模板为:
public abstract class lib {
public static final int ZERO = 0;
public static final int ONE = 1;
public static final int TWO = 2;
public static void func1(int i) {
}
public static void func2(int i, String s) {
}
}
您可以从任何其他代码中像这样使用它:
...;
lib.func1( lib.ZERO );
lib func2( lib.TWO, "sandwich" );
...;
知道这一点让我确信我所做的一切都很好。
找到一种避免前缀 lib 的方法将是完美的。并且只需让 ECLIPSE 和编译器找到正确的导入并仅使用其名称识别函数,就像它们对全局库所做的那样。