android 多个页面怎么共用同一组件

2025-05-11 07:12:14
推荐回答(1个)
回答1:

自定义组件就行。如果觉得还不好就创建一个module。

关于自定义组件的实例,请参考android学习手册,android学习手册包含9个章节,108个例子,源码文档随便看,例子都是可交互,可运行,源码采用android studio目录结构,高亮显示代码,文档都采用文档结构图显示,可以快速定位。360手机助手中下载,图标上有贝壳

.多个Activity共用相同布局或者相同控件:避免重复代码;

BaseActivit代码:

   

public class BaseActivity extends Activity implements OnClickListener

{

    /*

     *  多个Activity共用相同布局或者相同控件

     *  写个基类继承,避免重复代码

     */

    @Override

    public void onClick(View v)

    {

        switch (v.getId())

        {

        case R.id.common_titlebar_btn_back:

            finish();

            break;

        default:

            break;

        }

        baseOnClick(v);

    }

                  

    protected void baseOnClick(View v)

    {

                      

    }

                  

    @Override

    protected void onCreate(Bundle savedInstanceState)

    {

        super.onCreate(savedInstanceState);

//        setContentView(R.layout.activity_base);

    }

                  

    @Override

    protected void onResume()

    {

        super.onResume();

        onPostOnCreate();

    }

                  

    public final void onPostOnCreate()//find同一个控件

    {

        findViewById(R.id.common_titlebar_btn_back).setOnClickListener(this);

    }

    @Override

    public boolean onCreateOptionsMenu(Menu menu)

    {

        getMenuInflater().inflate(R.menu.base, menu);

        return true;

    }

}

   


子类代码:


public class ThirdActivity extends BaseActivity

{

    /**

     *  layout里复用同一布局:

     *     < include

     *   android:id="@+id/include1"

     *   layout="@layout/common_titlebar" />

     */

    @Override

    protected void onCreate(Bundle savedInstanceState)

    {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_third_main);

    }

}