替换Manifest.xml,界面替换(动态布局、动态获取R文件)

获取AndroidManifest.xml中的package name (可以package来当判断条件):一个程序替换AndroidManifest.xml修改R文件就可以界面大换血了
if(getApplication().getPackageName().equals("com.wintone.plateid.free")){
            
        }else{
           
        }
如果上面的R.drawable.chinasafe_log不能引入,报错,
wintoneImage.setBackgroundDrawable (getResources().getDrawable
(getResources().getIdentifier("safeinfo1", "drawable", getApplication().getPackageName())) );



如何连R文件都不修改:

getResources().getIdentifier("activity_main", "layout", this.getPackageName())
有时候this.getPackageName()会报错,把this换成getApplication()就好了
用这个方法来代替R文件
R.后面是什么,方法第二个参数就填什么,头两个参数都是String类型,必须加""
第一个参数就是需要加载的名称、id
例:
R.id.button
getResources().getIdentifier("button", "id", this.getPackageName())
R.drawable.pag
getResources().getIdentifier("pag", "drawable", this.getPackageName())
。。。。。。

如果在view、adapter。。。。等其他类地方上面的引入R文件方法就不好用了getResources()方法只能在Activity类里使用
如果想在其他类使用,就要使用context
context.getResoutces().getIdentifier("activity_main" , "layout" ,congtext.getApplication().getPackageName() );
context.getResoutces().getIdentifier("activity_main" , "layout" ,congtext.getPackageName() );
有的类还是不可以,就把context强转成Activity
context.getResoutces().getIdentifier("activity_main" , "layout" ,((Activity)congtext).getApplication().getPackageName() );


注意!!!!!!:这个方法在switch case选择中不可用。
如果替换 
switch ( v .getId()) {
      case R.id. tackPic_btn_main:
              Intent intentTack = new Intent("chinasafe.bankCard.scan_camera");
              intentTack.putExtra("WTAPP", 10011);
               startActivity(intentTack);
          break;
    case R.id.其他按钮id:
              Intent intentTack = new Intent("chinasafe.bankCard.scan_camera");
              intentTack.putExtra("WTAPP", 10011);
               startActivity(intentTack);
          break;
};
就需要用:
if( v  == tackPic_btn_main ){
                       点击tackPic_btn_main 按钮事件。
                 }else if(v  == 初始化按钮名称,不是id){
                        点击其他按钮事件。
                };
来代替







  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为您解答关于添加、修改Manifest.xmlManifest.kt和Layout布局的问题。 首先,让我们来看一下Manifest.xmlManifest.kt。Manifest文件是Android应用程序的配置文件,用于声明应用程序的组件和权限。在Kotlin中,你可以使用Manifest.kt文件来代替Manifest.xml文件,使用更加简单和方便。你可以在Manifest.kt文件中声明应用程序的组件和权限,如下所示: ``` package com.example.myapp import android.Manifest import androidx.compose.ui.graphics.Color val permissions = arrayOf( Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE ) val themeColors = mapOf( "primary" to Color(0xFF6200EE), "primaryVariant" to Color(0xFF3700B3), "secondary" to Color(0xFF03DAC6), "secondaryVariant" to Color(0xFF018786), "background" to Color(0xFFE5E5E5), "surface" to Color.White, "error" to Color(0xFFB00020), "onPrimary" to Color.White, "onSecondary" to Color.Black, "onBackground" to Color.Black, "onSurface" to Color.Black, "onError" to Color.White ) ``` 在这里,我们声明了应用程序需要的权限和主题颜色。 接下来,让我们来看一下Layout布局。Layout布局用于定义应用程序的UI界面。在Kotlin中,你可以使用Compose来创建布局。Compose是一种声明式UI编程模型,可以让你更加容易地编写UI界面。例如,以下代码演示了如何使用Compose创建一个简单的UI界面: ``` @Composable fun Greeting(name: String) { Text(text = "Hello $name!") } @Preview(showBackground = true) @Composable fun DefaultPreview() { MyApplicationTheme { Greeting("Android") } } ``` 在这里,我们定义了一个Greeting组件,它接受一个名字参数,并显示一个"Hello + 名字"的文本。我们还定义了一个DefaultPreview组件,它显示一个MyApplicationTheme主题和一个Greeting组件。 希望这些信息对你有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值