【问题标题】:How to use an intent to call up another class?如何使用意图调用另一个类?
【发布时间】:2013-08-10 20:12:07
【问题描述】:

我在尝试从应用程序的主屏幕显示我在 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 文件中与我尝试调用 Location 数据库 java 文件的 Intent 相关的部分。

@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 切换视图...如果有人有任何想法,请提供帮助。谢谢!

【问题讨论】:

  • 为什么这两个活动在清单中都有一个意图过滤器?

标签: android sqlite android-intent


【解决方案1】:

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

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

你不需要任何过滤器。

将您的 firstActivity 中的调用更改为:

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

【讨论】:

  • 我尝试了您的两个建议,但没有任何效果。该按钮单击但没有切换类。还有其他建议吗?
  • 有没有试过调试看是否进入case R.id.bloc语句?
  • 我在单击按钮时观看了 logcat,但什么也没有出现。我对编程仍然很陌生,就我的调试技能而言,这就是。这就是你的意思吗?注意错误?
  • 不,调试不仅仅是查看 logcat 并希望您能看到一些东西。 This videothis article 应该可以帮到你。
  • 另一件事:您在哪里将点击处理程序添加到按钮?也发布此代码。
【解决方案2】:

你也可以在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>

【讨论】:

  • 我在 android 上还是个新手,就 logcat 而言,没有任何东西出现
猜你喜欢
  • 2023-01-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-14
  • 2018-08-02
  • 1970-01-01
  • 2020-01-28
相关资源
最近更新 更多