0

我试图使用一个按钮来切换我的应用程序中的活动,但它一直强制关闭。这是我的 AndroidManifest.xml:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.idiedastyear"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
    android:minSdkVersion="9"
    android:targetSdkVersion="15" />

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".tabView"
        android:label="@string/title_activity_tab_view" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

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

    <activity
        android:name=".calculator"
        android:label="Calculator"  >
    </activity>
</application>

这是具有按钮的活动:

    package com.idiedastyear;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.support.v4.app.NavUtils;


public class tabView extends Activity {

    Button calculator;

    @Override



    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_tab_view);
        calculator = (Button)findViewById(R.id.calculatorButton);

        calculator.setOnClickListener(new View.OnClickListener() {

            public void onClick(View v) {
                // TODO Auto-generated method stub
                Intent calculatorIntent = new Intent(v.getContext(), calculator.class);
                startActivityForResult(calculatorIntent, 0);
            }
        });
    }




}

如果有人可以提供帮助,那就太好了!谢谢!

编辑 [Logcat]:

07-06 17:38:06.683: D/memalloc(25668): ion: 映射缓冲区基数:0x5ce6c000 大小:3768320 偏移量:0 fd:53 07-06 17:38:08.885: D/memalloc(25668): ion:映射缓冲区基数:0x5d304000 大小:3768320 偏移量:0 fd:60 07-06 17:38:08.985:D/CLIPBOARD(25668):在开始输入时隐藏剪贴板对话框:由其他人完成...!07-06 17:38:11.738: D/memalloc(25668): ion: 映射缓冲区基数:0x5d69c000 大小:3768320 偏移量:0 fd:63 07-06 17:38:12.168: D/AndroidRuntime(25668): 关闭VM 07-06 17:38:12.168: W/dalvikvm(25668): threadid=1: 线程以未捕获的异常退出 (group=0x40c72a68) 07-06 17:38:12.178: E/AndroidRuntime(25668): 致命异常:主要 07-06 17:38:12.178:E/AndroidRuntime(25668):java.lang.RuntimeException:无法启动活动 ComponentInfo{com.idiedastyear/com.idiedastyear.calculator}:android.view。

4

2 回答 2

0

你不应该使用

 startActivityForResult(calculatorIntent, 0);

而不是上面使用

startActivity(calculatorIntent);

startActivityForResult(calculatorIntent, 0); 用于从您开始的活动中获得结果。如果你只想切换活动 startActivity 就足够了。尽管您应该发布 logcat 以获得更好的答案。

于 2012-07-06T17:05:30.480 回答
0

您的代码具有以下内容:

Intent calculatorIntent = new Intent(v.getContext(), calculator.class);

第二个参数应该是活动类名称。您似乎也将计算器实例名称与您正在启动的calculator.class 混淆了。

我建议如下:

  1. 创建一个名为 CalculatorActivity 的 Activity 类。
  2. 确保您已在 AndroidManifest.xml 中定义
  3. 使用以下行启动 Activity:

Intent calculatorIntent = new Intent(getBaseContext(), CalculatorActivity.class);

此外,为了准确地帮助您,还请提供 LogCat 输出。

于 2012-07-06T16:49:02.827 回答