Android以编程方式设置Android:targetClass和Android:targetPackage

Android以编程方式设置Android:targetClass和Android:targetPackage,android,Android,在创建意图时,如何以编程方式设置这两个xml属性: android:targetPackage="com.example.prefs" android:targetClass="com.example.prefs.SettingsActivity" 这在代码中看起来如何 Intent i = new Intent(); i.setClassName("com.example.prefs", "com.example.prefs.SettingsActivity"); 硬编码包名是不好的,因

在创建意图时,如何以编程方式设置这两个xml属性:

android:targetPackage="com.example.prefs"
android:targetClass="com.example.prefs.SettingsActivity"
这在代码中看起来如何

Intent i = new Intent();
i.setClassName("com.example.prefs", "com.example.prefs.SettingsActivity");


硬编码包名是不好的,因为更改包名会破坏代码。如果您正在
FirstActivity.java
中创建意图并尝试启动
SecondActivity.java
,则可以尝试以下操作-

new Intent(FirstActivity.this, SecondActivity.class); 

这将不需要您提及包名。

硬编码包名是不好的,因为更改包名会破坏代码。如果您正在
FirstActivity.java
中创建意图并尝试启动
SecondActivity.java
,则可以尝试以下操作-

new Intent(FirstActivity.this, SecondActivity.class); 

这将不需要您提及包名。

我可以使用intent.setClassName(getActivity().getPackageName(),getActivity().getPackageName()+“+MainActivity.class.getSimpleName());?类的包名称并不总是应用程序的包名称。您需要应用程序的程序包名称才能工作。我可以执行intent.setClassName(getActivity().getPackageName(),getActivity().getPackageName()+“+MainActivity.class.getSimpleName());?类的包名称并不总是应用程序的包名称。您需要应用程序的程序包名称才能工作。