【发布时间】:2017-09-18 08:10:11
【问题描述】:
我想在multiple activity 中使用common function。我怎样才能做到这一点?
在我的应用程序中,我显示了一个 Dialog box,其中包含一些来自某些 api 的数据。而这个对话框,在多个活动中使用。 Right now I have implemented same Dialog box in all activities。现在我想要所有活动的通用对话框。 I am using this Dialog box in activity as well in adapter.
我怎么能这样做?使用extends 或使用fragment。
我已经在扩展一些类,所以我不能再扩展(正如我所读到的,我们不能扩展一个以上的类。)。
我还想向这个函数传递一些值,并基于return 值我想调用另一个函数。
private boolean allGroupsEdit(final String type) {
String allGroups = "allGroups";
final String url = Constants.CONSTANT_SERVER_URL + Constants.CONSTANT_GET_GROUPS_URL;
final ProgressDialog dialog = new ProgressDialog(context);
dialog.setMessage(context.getResources().getString(R.string.please_wait));
dialog.show();
StringRequest allGroupsRequest = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() {
@Override
public void onResponse(String s) {
final SharedPreferences sharedPreferencesRemember = PreferenceManager.getDefaultSharedPreferences(context);
sessionGroupId = sharedPreferencesRemember.getString(Constants.CONSTANT_session_group_id, "");
try {
JSONObject jsonObject = new JSONObject(s);
JSONArray jsonArray = jsonObject.optJSONArray(Constants.CONSTANT_data);
int a = jsonArray.length();
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject schObj = jsonArray.optJSONObject(i);
schData = schObj.optJSONArray(Constants.CONSTANT_data);
}
dialog.dismiss();
final Dialog dialog = new Dialog(context);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
dialog.setContentView(R.layout.dialog_checkbox_options);
Window window = dialog.getWindow();
window.setLayout(DrawerLayout.LayoutParams.MATCH_PARENT, DrawerLayout.LayoutParams.WRAP_CONTENT);
if(..someting){
editPublicComments(type);
}else{
editPublicPosts(type);
}
}catch(){}
}
}
注意:这是一个很长的函数,所以我粘贴一些代码以供基本理解。如果您需要更多详细信息,请告诉我。提前致谢,欢迎编辑和提出建议。
Edit_1:我希望整个功能通用。 Edit_2:如何从 utils 向活动返回值?
Edit_3:现在我在一个类中创建了一个静态函数,我可以从我的活动中调用它。现在我想根据常用函数结果调用另一个函数。 (我使用SharedPreferences来存储常用函数的值)。
但是在我调用通用函数的活动中,我不会先执行通用函数。调用另一个函数,然后调用普通函数,完成普通方法后,不再调用其他方法。
我只想根据常用函数的结果调用另一个函数,即true or false
boolean abab = CommonGroupBox.allGroupsEdit(context,"share", selectedPostId, localGrpArray);
if (abab){
boolean pubFlag = pref.getBoolean("isPublicFlag", false);
String qType = pref.getString("questionType","0");
if (pubFlag) {
editPublicComments(qType);
}else{
ediComments(qType);
}
else{
boolean pubFlag = pref.getBoolean("isPublicFlag", false);
String qType = pref.getString("questionType","0");
if (pubFlag) {
PublicComments(qType);
}else{
Comments(qType);
}
}
这里不是第一次调用CommonGroupBox.allGroupsEdit。它在 if 和 else 循环之后调用。
【问题讨论】:
-
创建一个
Utility类并将所有常用方法放入整个应用程序中并使用。 -
感谢您的回复@Rustam。我是安卓新手。如何创建实用程序类以及如何调用它以及将变量传递给它。
标签: android dialog fragment extends