一个activity显示另一个activity,Android studio将一个项目作为module导入另一个项目,字符串截取的几种基本方法

简介: 一个activity显示另一个activity,Android studio将一个项目作为module导入另一个项目,字符串截取的几种基本方法

LocalActivityManager实例化不是通过ActivityGroup



LocalActivityManager activity嵌套activity


Android给我们提供了ActivityGroup和TabActivity,当我们至需要嵌套一个Activity或者不方便继承ActivityGroupF的时候,我们可以参考ActivityGroup的实现,比较关键的是LocalActivityManager。


最外层Activity


LocalActivityManager.startActivity()需要传入里程Activity信息,就跟Activity.startActivity()打开新的Activity的Intent参数一样,不同的是LocalActivityManager.startActivity()把传入的Activity信息作为嵌套Activity打开。


外层Activity布局文件可以随意布置,但记得包涵里层Activty的布局标签,就像View是不能正常打开的里层Activity的。


外层Activity布局文件除了FrameLayout还可以使用LinearLayout作为显示里层Activity的视图。


但是里层Activity如果是ListActivity或者关于List相关属性的都不能正常显示。


通过 继承 AppCompatActivity 而不是ActivityGroup


public class CeShi  extends AppCompatActivity {
    LocalActivityManager mLocalActivityManager;
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.ce_shi);
        mLocalActivityManager = new LocalActivityManager((Activity) this, true);
        LinearLayout linear= (LinearLayout) findViewById(R.id.ll_view);
//        LocalActivityManager local= getLocalActivityManager();
        mLocalActivityManager.dispatchCreate(savedInstanceState);
        linear.addView((mLocalActivityManager.startActivity("OtherActivityView", new Intent(this, RegisterAndRecognizeActivity.class))).getDecorView());
    }
}


layout


<?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:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:ignore="MissingDefaultResource">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="444dp"
        android:id="@+id/ll_view"
        android:orientation="horizontal" />
    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="344dp">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/app_name"/>
        <TextureView
            android:id="@+id/single_camera_texture_preview"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />
        <com.arcsoft.arcfacedemo.widget.FaceRectView
            android:id="@+id/single_camera_face_rect_view"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />
    </FrameLayout>
</LinearLayout>


通过 继承 ActivityGroup


/**
 * @ProjectName: ArcfaceDemo
 * @Package: com.arcsoft.arcfacedemo.activity
 * @ClassName: CeShi
 * @Description: java类作用描述
 * @Author: liys
 * @CreateDate: 2021/6/19 8:32
 * @UpdateUser: 更新者
 * @UpdateDate: 2021/6/19 8:32
 * @UpdateRemark: 更新说明
 * @Version: 1.0
 */
public class CeShi  extends ActivityGroup {
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.ce_shi);
        LinearLayout linear= (LinearLayout) findViewById(R.id.ll_view);
        LocalActivityManager local= getLocalActivityManager();
        local.dispatchCreate(savedInstanceState);
        linear.addView((local.startActivity("OtherActivityView", new Intent(this, RegisterAndRecognizeActivity.class))).getDecorView());
    }
}


studio将一个项目作为module导入另一个项目


apply plugin: ‘com.android.application’ 为 apply plugin: ‘com.android.library’


image.png

image.png

image.png

image.png

image.png


删除子module的 application


image.png


字符串截取的几种基本方法


public static void main(String[] args) {
    String a="abcd-efg";
    String a1=a.substring(a.lastIndexOf("-")+1);
    String a2=a.substring(0,a.indexOf("-"));
    System.out.println(a1);//efg
    System.out.println(a2);//abcd
    String b="620303197010141212";
    if(b.length() == 18){
      String sex = b.substring(16, 17);
      System.out.println(sex);
      if(Integer.parseInt(sex)%2==0){
        enfore_sex.setText("女");
      }else{
        enfore_sex.setText("男");
      }
    }
    String c="陕C38205(黄)色";
    String c1=c.substring(c.lastIndexOf(")")+1);
    String c2=c.substring(0,c.indexOf("("));
    String c3=c.replace("(","");
    c3=c3.replace(")","");
    String c5=c.substring(c.indexOf("(")+1,c.indexOf(")"));
    System.out.println(c1);//色
    System.out.println(c2);//陕C38205
    System.out.println(c3);//陕C38205黄色
    System.out.println(c5);//黄
  }
复制代码
string str=“123abc456”;
int i=3;
1 取字符串的前i个字符
str=str.Substring(0,i); // or str=str.Remove(i,str.Length-i);
2 去掉字符串的前i个字符:
str=str.Remove(0,i); // or str=str.Substring(i);
3 从右边开始取i个字符:
str=str.Substring(str.Length-i); // or str=str.Remove(0,str.Length-i);
4 从右边开始去掉i个字符:
str=str.Substring(0,str.Length-i); // or str=str.Remove(str.Length-i,i);
5 判断字符串中是否有"abc" 有则去掉之
using System.Text.RegularExpressions;
string str = “123abc456”;
string a=“abc”;
Regex r = new Regex(a);
Match m = r.Match(str);
if (m.Success)
{
//绿色部分与紫色部分取一种即可。
str=str.Replace(a,“”);
Response.Write(str);
string str1,str2;
str1=str.Substring(0,m.Index);
str2=str.Substring(m.Index+a.Length,str.Length-a.Length-m.Index);
Response.Write(str1+str2);
}
6 如果字符串中有"abc"则替换成"ABC"
str=str.Replace(“abc”,“ABC”);
string str=“adcdef”; int indexStart = str.IndexOf(“d”);
int endIndex =str.IndexOf(“e”);
string toStr = str.SubString(indexStart,endIndex-indexStart);
c#截取字符串最后一个字符的问题!
str1.Substring(str1.LastIndexOf(“,”)+1)


目录
相关文章
|
3月前
|
Java Android开发 C++
Android Studio JNI 使用模板:c/cpp源文件的集成编译,快速上手
本文提供了一个Android Studio中JNI使用的模板,包括创建C/C++源文件、编辑CMakeLists.txt、编写JNI接口代码、配置build.gradle以及编译生成.so库的详细步骤,以帮助开发者快速上手Android平台的JNI开发和编译过程。
220 1
|
13天前
|
缓存 Java Shell
Android 系统缓存扫描与清理方法分析
Android 系统缓存从原理探索到实现。
39 15
Android 系统缓存扫描与清理方法分析
|
17天前
|
缓存 前端开发 Android开发
Android实战之如何截取Activity或者Fragment的内容?
本文首发于公众号“AntDream”,介绍了如何在Android中截取Activity或Fragment的屏幕内容并保存为图片。包括截取整个Activity、特定控件或区域的方法,以及处理包含RecyclerView的复杂情况。
15 3
|
1月前
|
Java Unix Linux
Android Studio中Terminal运行./gradlew clean build提示错误信息
遇到 `./gradlew clean build`命令执行出错时,首先应检查错误信息的具体内容,这通常会指向问题的根源。从权限、环境配置、依赖下载、版本兼容性到项目配置本身,逐一排查并应用相应的解决措施。记住,保持耐心,逐步解决问题,往往复杂问题都是由简单原因引起的。
169 2
|
2月前
|
ARouter 测试技术 API
Android经典面试题之组件化原理、优缺点、实现方法?
本文介绍了组件化在Android开发中的应用,详细阐述了其原理、优缺点及实现方式,包括模块化、接口编程、依赖注入、路由机制等内容,并提供了具体代码示例。
44 2
|
2月前
|
XML IDE 开发工具
🔧Android Studio高级技巧大公开!效率翻倍,编码不再枯燥无味!🛠️
【9月更文挑战第11天】在软件开发领域,Android Studio凭借其强大的功能成为Android开发者的首选IDE。本文将揭示一些提升开发效率的高级技巧,包括自定义代码模板、重构工具、高级调试技巧及多模块架构。通过对比传统方法,这些技巧不仅能简化编码流程,还能显著提高生产力。例如,自定义模板可一键插入常用代码块;重构工具能智能分析并安全执行代码更改;高级调试技巧如条件断点有助于快速定位问题;多模块架构则提升了大型项目的可维护性和团队协作效率。掌握这些技巧,将使你的开发之旅更加高效与愉悦。
63 5
|
3月前
|
Java Android开发 芯片
使用Android Studio导入Android源码:基于全志H713 AOSP,方便解决编译、编码问题
本文介绍了如何将基于全志H713芯片的AOSP Android源码导入Android Studio以解决编译和编码问题,通过操作步骤的详细说明,展示了在Android Studio中利用代码提示和补全功能快速定位并修复编译错误的方法。
113 0
使用Android Studio导入Android源码:基于全志H713 AOSP,方便解决编译、编码问题
|
3月前
|
Dart 开发工具 Android开发
Android Studio导入Flutter项目提示Dart SDK is not configured
Android Studio导入Flutter项目提示Dart SDK is not configured
267 4
|
3月前
|
Java 开发工具 Android开发
Android Studio利用Build.gradle导入Git commit ID、Git Branch、User等版本信息
本文介绍了在Android Studio项目中通过修改`build.gradle`脚本来自动获取并添加Git的commit ID、branch名称和用户信息到BuildConfig类中,从而实现在编译时将这些版本信息加入到APK中的方法。
65 0
|
6月前
|
Java Android开发
Android Studio的使用导入第三方Jar包
Android Studio的使用导入第三方Jar包
44 1