我想编写一个具有约20个不同Activity的应用程序。每个活动中都有一些其他活动中相似的部分。我将每个页面分为智能部分,并为它们编写单独的布局。然后在活动中,我使用include
标记将该部分添加到活动中。
我不知道实现此应用程序的真正方法是什么。
感谢您的任何建议。
答案 0 :(得分:2)
我制作了示例BaseActivity。制作您要使用的抽象方法,并覆盖您的类。您可以在您的类中使用所有基本活动公共方法。如果要使用
,则抽象方法将覆盖您的类,简单的Public方法将是可选的public abstract class BaseMainActivity extends AppCompatActivity implements View.OnClickListener{
private static ProgressDialog progressDialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
initMethod();
setContentView(getLayout());
initUI();
initListeners();
}
public abstract void initMethod();
public abstract int getLayout();
public abstract void initUI();
public abstract void initListeners();
@Override
public void onClick(View view) {
}
public String getEditString(CustomEdittext edittext){
return edittext.getText().toString().trim();
}
public void getEditError(CustomEdittext edittext, String message){
edittext.setError(message);
}
public static void showProgress(AppCompatActivity activity){
try{
progressDialog = new ProgressDialog(activity);
progressDialog.setTitle("Please Wait");
progressDialog.show();
}catch (Exception ex){
ex.printStackTrace();
}
}
public static void hideProgress(){
try{
if(progressDialog!=null)
progressDialog.dismiss();
}catch (Exception ex){
ex.printStackTrace();
}
}
public void showToast(String message,Context context)
{
Toast.makeText(context,message,Toast.LENGTH_LONG).show();
}
}
嗨,这是示例,我们可以将BaseActivity扩展到我们的类。
public class HomeActivity extends BaseMainActivity {
private Toolbar toolbar = null;
private Picasso picasso;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public void initMethod() {
}
@Override
public int getLayout() {
return R.layout.activity_main;
}
@Override
public void initUI() {
initToolbar();
initDrawerLayout();
initNavigationView();
}
}
答案 1 :(得分:0)
您可以为类似的方法创建base activity
并将其扩展到其他活动中。
大约layouts
可以首先创建类似的布局,然后将它们包括在其他布局中。
为了获得良好的结构,我认为使用MVP
。