文档章节

Android 多模块项目入门

樂天
 樂天
发布于 2017/03/26 17:59
字数 399
阅读 521
收藏 0

精选30+云产品,助力企业轻松上云!>>>

项目大了就需要拆分,这里简单用个示例来入门。

像平常一样创建一个android项目

创建一个新的模块

新建一个模块(New Module),选择Android Library。

输入图片说明

输入图片说明

输入图片说明

最终两个项目结构:

输入图片说明

代码

settings.gradle中内容:

include ':app', ':mylibrary'

在主模块app的build.gradle中的dependencies中增加:

compile project(":mylibrary")

MainActivity内容如下:

package test1.letiantian.me.myapplication;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

import test1.letiantian.me.mylibrary.TestActivity;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button btn = (Button) findViewById(R.id.btn);
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(MainActivity.this,
                        TestActivity.class);
                startActivity(intent);
            }
        });
    }
}

activity_main.xml内容如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="test1.letiantian.me.myapplication.MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!"/>

    <Button
        android:id="@+id/btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="进入library中的activity"/>

</LinearLayout>

TestActivity内容如下:

package test1.letiantian.me.mylibrary;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

public class TestActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_test);

        Button btn = (Button) findViewById(R.id.btn);

        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(getApplicationContext(), "测试toast", Toast.LENGTH_SHORT).show();
            }
        });

    }
}

activity_test.xml内容如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_test"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:orientation="vertical"
    tools:context="test1.letiantian.me.mylibrary.TestActivity">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="测试页面"/>
    <Button
        android:id="@+id/btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="toast一下"/>

</LinearLayout>

值得注意:两个布局文件中的button的id都是btn

效果

樂天

樂天

粉丝 138
博文 679
码字总数 153057
作品 3
深圳
程序员
私信 提问
加载中
请先登录后再评论。
Android技术干货汇总

以下文章部分来自阿里巴巴,腾讯阅文,平安的技术工程师和博客大V,特此汇总! Android技术干货: 基于运行时组件化/模块化的架构实践 Android 模块化之路 模块间调用简易实现方案 热修复原理...

Tamic
2018/04/16
0
0
Kotlin Weekly 中文周报 —— 99

Kotlin 开发中文周报 从 Java 到 Kotlin,再从 Kotlin 回归 Java(www.itcodemonkey.com) 作者是 Allegro 的一名技术人员。Allegro 拥有超过 50 个开发团队。可以自由选择 他们的 PaaS 所支...

DoubleThunder
2018/06/25
0
0
gradle入门

随着Android Studio越来越完善,更多的开发者舍弃掉Eclipse。但是新的IDE与以往的Eclipse有很大区别,这导致部分开发者望而却步,其中一个大家觉得比较麻烦的是Android Studio采用的新的构建...

shzwork
2019/07/05
12
0
在 Android 中使用依赖注入 | AndroidDevSummit 中文字幕视频

如果您想在 Android 使用依赖注入,我们推荐使用 Dagger。但使用 Dagger 的方法有很多!在本次演讲中,Manuel Vivo 和 Daniel Santiago Rivera 将为大家讲解为什么我们推荐使用 Dagger,使用...

Android_开发者
2019/12/17
0
0
Ocean Mooc项目启动

写在前面   首先,先给自己记一过。   比赛结束后的这段日子,一直沉迷在休息的自我麻醉中,不够自律;经常睡懒觉到中午,然后起来追追剧,吹吹B一天天的就过去了。   所以,这篇博客权...

osc_z7ezpf37
2018/06/21
2
0

没有更多内容

加载失败,请刷新页面

加载更多

将字符串拆分为具有多个单词边界定界符的单词 - Split Strings into words with multiple word boundary delimiters

问题: I think what I want to do is a fairly common task but I've found no reference on the web. 我认为我想做的是一项相当普通的任务,但是我在网络上找不到任何参考。 I have text ...

fyin1314
今天
9
0
jQuery选择器中的通配符 - Wildcards in jQuery selectors

问题: I'm trying to use a wildcard to get the id of all the elements whose id begin with "jander". 我正在尝试使用通配符来获取id以“jander”开头的所有元素的id。 I tried $('#jand......

法国红酒甜
今天
19
0
唐山5.1级地震 百度人工智能技术帮上忙:成都减灾所提前30秒让北京、天津市民收到预警

本文作者:y****n 7月12日6时38分在河北唐山市古冶区发生5.1级地震,成都高新减灾研究所与应急管理部门联合建成的大陆地震预警网成功预警该地震,给唐山市提前3秒预警,给天津市提前33秒预警...

百度开发者中心
昨天
30
0
如何使用PHP发送POST请求? - How do I send a POST request with PHP?

问题: Actually I want to read the contents that come after the search query, when it is done. 实际上,我想阅读搜索查询之后的内容,完成之后。 The problem is that the URL only a......

javail
今天
14
0
如何从Java读取文件夹中的所有文件? - How to read all files in a folder from Java?

问题: 如何通过Java读取文件夹中的所有文件? 解决方案: 参考一: https://stackoom.com/question/7jt2/如何从Java读取文件夹中的所有文件 参考二: https://oldbug.net/q/7jt2/How-to-rea...

富含淀粉
今天
25
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部