您好我的Android应用程序中有两个软件包说com.packagea
和com.packageb
。现在我尝试通过com.packageb
中的活动激活com.packagea
中的活动以下代码
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>
我是否需要指定包名称。这只发生在我尝试从另一个包调用一个活动时。有关如何解决此问题的任何建议
答案 0 :(得分:0)
尝试使用完全限定名称:
com.packageb.Authenticate
<activity
android:name="com.packageb.Authenticate"
android:label="@string/title_activity_options" >
</activity>
而不是
<activity
android:name=".Authenticate"
android:label="@string/title_activity_options" >
</activity>
答案 1 :(得分:0)
如果Authenticate活动在com.packageb中并且您尝试从com.packagea包中调用它,则可以使用ceonvenience方法Intent.setClassName():
Intent i = new Intent();
i.setClassName("com.packageb", "com.packageb.Authenticate");
...