android - 如何调用另一个项目中的 Activity ?

标签 android android-activity

大家好,我是 android 新手,我已经创建了 2 个项目。

现在我想在单击按钮时从第一个项目调用第二个项目中的 Activity 。

第一个项目只处理登录屏幕,当我点击登录按钮时,我需要调用第二个项目中存在的 Activity 。

我在网上搜索,但没有找到任何我能正确理解的教程。

您好,我发现了以下错误。

01-30 08:36:47.230: E/dalvikvm(3408): Could not find class 'com.androidhive.googleplacesandmaps.MainActivity', referenced from method org.fluturasymphony.recommendation.LoginActivity$DownloadWebPageTask.doInBackground
01-30 08:36:52.587: E/AndroidRuntime(3408): FATAL EXCEPTION: AsyncTask #1
01-30 08:36:52.587: E/AndroidRuntime(3408): java.lang.RuntimeException: An error occured while executing doInBackground()
01-30 08:36:52.587: E/AndroidRuntime(3408):     at android.os.AsyncTask$3.done(AsyncTask.java:299)
01-30 08:36:52.587: E/AndroidRuntime(3408):     at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:352)
01-30 08:36:52.587: E/AndroidRuntime(3408):     at java.util.concurrent.FutureTask.setException(FutureTask.java:219)
01-30 08:36:52.587: E/AndroidRuntime(3408):     at java.util.concurrent.FutureTask.run(FutureTask.java:239)
01-30 08:36:52.587: E/AndroidRuntime(3408):     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
01-30 08:36:52.587: E/AndroidRuntime(3408):     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
01-30 08:36:52.587: E/AndroidRuntime(3408):     at java.lang.Thread.run(Thread.java:856)
01-30 08:36:52.587: E/AndroidRuntime(3408): Caused by: java.lang.NoClassDefFoundError: com.androidhive.googleplacesandmaps.MainActivity
01-30 08:36:52.587: E/AndroidRuntime(3408):     at org.fluturasymphony.recommendation.LoginActivity$DownloadWebPageTask.doInBackground(LoginActivity.java:69)
01-30 08:36:52.587: E/AndroidRuntime(3408):     at org.fluturasymphony.recommendation.LoginActivity$DownloadWebPageTask.doInBackground(LoginActivity.java:1)
01-30 08:36:52.587: E/AndroidRuntime(3408):     at android.os.AsyncTask$2.call(AsyncTask.java:287)
01-30 08:36:52.587: E/AndroidRuntime(3408):     at java.util.concurrent.FutureTask.run(FutureTask.java:234)
01-30 08:36:52.587: E/AndroidRuntime(3408):     ... 3 more

我已将 list 声明为这样。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="org.fluturasymphony.recommendation"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="9"
              android:targetSdkVersion="11" />
    <uses-permission android:name="android.permission.INTERNET" />    
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <application android:icon="@drawable/ic_launcher" android:label="@string/app_name">
        <activity android:label="@string/app_name" android:name=".LoginActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <activity android:name="org.achartengine.GraphicalActivity" />
        <activity android:name=".CategoryWiseSalesChartActivity" />
        <activity android:name=".ProductWiseSalesChartActivity" />
        <activity android:name="com.androidhive.googleplacesandmaps.MainActivity"/>
        <activity android:label="@string/home_screen" android:name=".HomeActivity" android:configChanges="orientation">            
        </activity>
        <activity android:label="@string/store_screen" android:name=".StoreActivity" android:configChanges="orientation">            
        </activity>
        <activity android:label="@string/store_list_screen" android:name=".StoreListActivity" android:configChanges="orientation">            
        </activity>
        <activity android:label="@string/location_screen" android:name=".StoreMapActivity" android:configChanges="orientation">            
        </activity>
        <activity android:label="@string/recommended_products_list_screen" android:name=".RecommendedProductsListActivity" android:configChanges="orientation">            
        </activity>
        <activity android:label="@string/category_wise_sales_screen" android:name=".CategoryWiseSalesActivity" android:configChanges="orientation">            
        </activity>
        <activity android:label="@string/product_wise_sales_screen" android:name=".ProductWiseSalesActivity" android:configChanges="orientation">            
        </activity>
                <uses-library android:name="com.google.android.maps" />


    </application>



</manifest>

我这样称呼第二类中的 Activity 。

Intent loginintent = new Intent("com.androidhive.googleplacesandmaps.MainActivity");
                        startActivity(loginintent);

这样对吗??

最佳答案

根据 Android,您可以通过创建项目 Library 来处理此问题然后在 list 文件中定义它并以您想要的任何方式调用它

为了解释,我按照我的要求做了这个 您要在按钮上调用的 Activity 单击在 list 中使用其完整包名称定义它,然后当您在按钮上调用它时单击将触发新项目的 Activity 执行此操作的示例如下 在第一个项目的 manifest 文件中定义这样的东西

<activity 
        android:name="packagefull.activityname"
        android:theme="@android:style/Theme.NoTitleBar.Fullscreen">

    </activity>

在包名中定义要调用的 Activity 的完整路径,在包名后给出 Activity 的名称 希望这对你有用,因为这对我来说很完美

关于android - 如何调用另一个项目中的 Activity ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14596999/

相关文章:

ANDROID:在 HTTP 请求后启动 Activity 时应用程序崩溃

xml - Activity_my.xml 不匹配,尝试遵循 android 教程

android - InAppBrowser 不会在 ionic 全屏模式下播放 Youtube 视频

android - 从另一个线程调用 sendBroadcast() 可以吗?

android.permission.ANSWER_PHONE_CALLS 我该如何使用?用于自动应答

android studio 自定义适配器 OnClickListener

android - MPAndroidChart - "\n"在设置 ValueFormatter 时不起作用

java - 从 Android SQLite 数据库获取最大唯一 ID 不起作用

重新启动应用程序后Android显示最后一个 Activity

java - Android - 为什么使用接口(interface)被认为是 Activity 和 Fragment 之间通信的最佳实践?