如何编写包含重复部分的应用程序?

时间:2019-02-25 06:48:05

标签: android

我想编写一个具有约20个不同Activity的应用程序。每个活动中都有一些其他活动中相似的部分。我将每个页面分为智能部分,并为它们编写单独的布局。然后在活动中,我使用include标记将该部分添加到活动中。 我不知道实现此应用程序的真正方法是什么。 感谢您的任何建议。

2 个答案:

答案 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