如何使用意图调用另一个类?

时间:2013-08-09 03:23:08

标签: android sqlite android-intent

我在尝试从应用程序的主屏幕显示我在SQLiteDatabase中收集的数据时出现问题。这是我的应用程序清单...... 我已经尝试将Main.java文件从LAUNCHER切换到DEFAULT,而对于数据库java文件则相反,以便在运行时将其打开,我可以让它以那种方式显示该类但不使用我在Main.java文件,用于更改以查看数据。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.innovativesolutions.gpsareafinder"
    android:versionCode="2"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="10"
        android:targetSdkVersion="14" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>



    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.innovativesolutions.gpsareafinder.Main"
            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.innovativesolutions.gpsareafinder.Locationdbview"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

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

</manifest>

以下是我的Main.java文件中与Intent有关的部分,我试图调用Location数据库java文件。

@Override
public void onClick(View v) {
    // TODO Auto-generated method stub
    switch (v.getId()) {
    case R.id.bcalculate:
        area();
        break;
    case R.id.bclear:
        clear();
        break;
    case R.id.bloc:

        Intent in = new
   Intent("com.innovativesolutions.gpsareafinder.Locationdbview");
        startActivity(in);

        break;

我认为错误在我的清单中是简单的,或者我尝试使用Intent切换视图...如果有任何想法请帮助。谢谢!

2 个答案:

答案 0 :(得分:1)

将清单中的第二个活动更改为:

<activity
   android:name="com.innovativesolutions.gpsareafinder.Locationdbview"
   android:label="@string/app_name" >
</activity>

您不需要任何过滤器。

将firstActivity中的通话更改为:

startActivity(new Intent(this, Locationdbview.class));

答案 1 :(得分:1)

您也可以在Main.java

中尝试此操作
 Class myclass =Class.forName("com.innovativesolutions.gpsareafinder.Locationdbview");
 Intent in=new Intent(Main.this,myclass);  
 startActivity(in);

在Manifest.xml中:

<activity android:name=".Locationdbview" ></activity>