Android 问题:从其他程序包启动活动
您好,我目前在我的android应用程序中有两个软件包,分别是Android 问题:从其他程序包启动活动,android,Android,您好,我目前在我的android应用程序中有两个软件包,分别是com.packagea和com.packageb。现在我正试图通过以下代码从com.packagea中的活动激活com.packageb String username = ((android.widget.EditText)findViewById(R.id.editUserName)).getText().toString(); String pass = ((android.widget.EditText)fi
com.packagea
和com.packageb
。现在我正试图通过以下代码从com.packagea
中的活动激活com.packageb
String username = ((android.widget.EditText)findViewById(R.id.editUserName)).getText().toString();
String pass = ((android.widget.EditText)findViewById(R.id.editPass)).getText().toString();
Intent i = new Intent(this, Authenticate.class);
i.putExtra("uname", username);
i.putExtra("pass",pass);
startActivityForResult(i, 1);
但是,它甚至不会进入com.packageb
中的Authenticate.class。有什么建议说明为什么那门课不上吗。下面是我在清单文件中声明活动的方式
<activity
android:name=".Authenticate"
android:label="@string/title_activity_options" >
</activity>
我是否需要随此一起指定包名。只有当我尝试从不同的包调用活动时,才会发生这种情况。关于如何解决此问题的任何建议请尝试使用完全限定名称:
com.packageb.Authenticate
<activity
android:name="com.packageb.Authenticate"
android:label="@string/title_activity_options" >
</activity>
com.packageb.Authenticate
而不是
<activity
android:name=".Authenticate"
android:label="@string/title_activity_options" >
</activity>
如果验证活动位于com.packageb中,并且您试图从com.packagea包中调用它,则可以使用ceonvenence方法:
Intent i = new Intent();
i.setClassName("com.packageb", "com.packageb.Authenticate");
...