我是Android编程的新手,并开始我的第一个作为Xposed模块的项目,这个xposed模块有一个选项,当它启用它将改变一个可绘制的文件,现在好吗? 我遇到的问题是在public void handleInitPackageResources中使用“onCheckedChanged”。
我有很多错误,我无法理解为什么/如何修复它,这是我的代码:
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.content.res.XModuleResources;
import de.robv.android.xposed.IXposedHookInitPackageResources;
import de.robv.android.xposed.IXposedHookZygoteInit;
import de.robv.android.xposed.callbacks.XC_InitPackageResources.InitPackageResourcesParam;
import android.view.View;
import android.widget.CompoundButton;
import android.widget.Switch;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public class CustomHeaderImage implements IXposedHookZygoteInit, IXposedHookInitPackageResources {
private String MODULE_PATH = null;
@Override
public void initZygote(StartupParam startupParam) throws Throwable {
MODULE_PATH = startupParam.modulePath;
}
@Override
public void handleInitPackageResources(InitPackageResourcesParam resparam) throws Throwable {
if (!resparam.packageName.equals("com.android.systemui"))
return;
///////the place of the switch
////If Enabled Do The Following :
Switch applybutton = (Switch)findViewById(R.id.switch1);
applybutton.setOnClickListener(new CompoundButton.OnCheckedChangeListener(){
public void onCheckedChanged extends AppCompatActivity(CompoundButton R.id.switch1, boolean on)
{
if (on) {
XModuleResources modRes = XModuleResources.createInstance(MODULE_PATH, resparam.res);
resparam.res.setReplacement("com.android.systemui", "drawable", "notification_header_bg", modRes.fwd(R.drawable.notification_header_bg));
} else {
}
} }
};
}
答案 0 :(得分:1)
不要将您的设置应用的活动与实际模块混合,这不是Xposed的工作方式。您的实际模块不能作为应用程序的一部分工作,您需要将它们分开并在应用程序中,将drawable保存到文件中,然后在模块中访问该文件
要分隔它们,请为实际模块创建一个新类。请务必将assets / xposed-init文件更改为新类