1

我一直在阅读其他一些关于在另一个包中调用活动的帖子,看起来我做得对,但仍然从我的主要活动中得到这个错误:

AndroidTestProj1/src/com/testing/androidtest/TestProj1Activity.java:7: error: package com.testing.androidtest2 does not exist

我已经在我的清单中声明了其他活动,但它仍然找不到它。

=====================================

这是 AndroidTestProj1:AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.testing.androidtest"
  android:versionCode="1"
  android:versionName="1.0">
<application android:label="@string/app_name" >
   <activity android:name="TestProj1Activity"
              android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
<activity
        android:name="com.testing.androidtest2.TestProj2Activity"
        android:label="@string/app2_name" >
    </activity>
</application>

和 AndroidTestProj1/src/com/testing/androidtest/TestProj1Activity.java:

    package com.testing.androidtest;

import android.app.Activity;
import android.os.Bundle;
import android.content.Intent;

import com.testing.androidtest2.TestProj2Activity;

public class TestProj1Activity extends Activity
{
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

    // do some stuff here then call other package activity

    Intent i = new Intent(this, TestProj2Activity.class);
    startActivity(i);
    }
}

这是 AndroidTestProj2:AndroidManifest.xml:

    <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.testing.androidtest2"
  android:versionCode="1"
  android:versionName="1.0">
<application android:label="@string/app_name" >
    <activity android:name="TestProj2Activity"
              android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

和 AndroidTestProj2/src/com/testing/androidtest2/TestProj2Activity.java:

package com.testing.androidtest2;

import android.app.Activity;
import android.os.Bundle;

import com.testing.androidtest2.Helper;

public class TestProj2Activity extends Activity
{
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }

    private boolean somekeyvalue = Helper.getSomeKeyValue();

    // do stuff with keyvalue

}

和AndroidTestProj2/src/com/testing/androidtest2/Helper.java:

package com.testing.androidtest2;

import android.content.Context;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;

public class Helper {

    private static final String SOMEKEY = "somekey";

    private static SharedPreferences prefs;

        public static void init(Context context)
        {
                prefs = PreferenceManager.getDefaultSharedPreferences(context);
                initialize();
        }

        private static void initialize()
        {
                SharedPreferences.Editor editor = prefs.edit();

                if (!prefs.contains(SOMEKEY)) editor.putBoolean(SOMEKEY, false);

                editor.commit();
        }

        public static boolean getSomeKeyValue()
        {
                return prefs.getBoolean(SOMEKEY, true);
        }

}
4

2 回答 2

1

这与您在正常情况下所做的事情相同,但需要稍作调整。在您想从其他包调用其他活动的 FirstActivity 中,输入以下代码

代码

Intent i = new Intent(); 

i.setClassName("com.CodeArt.finalactivity", "com.CodeArt.finalactivity.FinalActivity");

startActivity(i);

com.CodeArt.finalactivity是包名,com.CodeArt.finalactivity.FinalActivity是完整的类名。

现在转到 FirstActivity 的 AndroidManifest.xml 并 activity android:name=”com.CodeArt.finalactivity.FinalActivity在应用程序标签中添加以下行“。

它会正常工作。

于 2013-09-19T19:24:40.843 回答
0

只是一个假设,但您是否已经将第二个项目添加到当前项目中?否则,即使您在清单中声明它们,您也无法访问它的类。要知道如何实现,你可以在这里查看

于 2013-09-19T20:34:24.960 回答