由于我不知道,无法解析构造函数和方法

时间:2017-07-05 07:04:57

标签: android android-studio android-intent

public void openNumbers (View view) {
        Intent numbers = new Intent(this, NumbersActivity.class);
        startActivity(numbers);
    }

这些代码行有问题吗?我在(this,NumbersActivity.class)下面有红线;它说不能解决构造者的意图(......)'和红色文字startActivity说不能重新[在这里输入图像描述] [1]解决方法' startActivity(android.content.Intent)'

我是一个全新的

activity_main.xml中

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/tan_background"
    android:orientation="vertical"
    tools:context="com.example.android.miwok.MainActivity">

    <TextView
        android:id="@+id/numbers"
        style="@style/CategoryStyle"
        android:background="@color/category_numbers"
        android:text="@string/category_numbers"
        android:onClick="openNumbers"/>

    <TextView
        android:id="@+id/family"
        style="@style/CategoryStyle"
        android:background="@color/category_family"
        android:text="@string/category_family" />

    <TextView
        android:id="@+id/colors"
        style="@style/CategoryStyle"
        android:background="@color/category_colors"
        android:text="@string/category_colors" />

    <TextView
        android:id="@+id/phrases"
        style="@style/CategoryStyle"
        android:background="@color/category_phrases"
        android:text="@string/category_phrases" />

</LinearLayout>

MainActivity.java

package com.example.android.miwok;

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // Set the content of the activity to use the activity_main.xml layout file
        setContentView(R.layout.activity_main);
    }

    public void openNumbers (View view) {
        Intent numbers = new Intent(this, NumbersActivity.class);
        startActivity(numbers);
    }
}

AndroidManidest.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.android.miwok">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

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

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

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

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

        </activity>
    </application>

</manifest>

我知道错误是什么!错误是没有错误...虽然AS显示红色字体,但当我在手机上粘贴应用程序时,即使使用红色字体IDK为什么

我知道错误是什么!错误是没有错误...虽然AS显示红色字体,但当我在手机上粘贴应用程序时,即使使用红色字体IDK为什么

5 个答案:

答案 0 :(得分:3)

当您从onClick()方法开始活动时,因此在构建Intent时,您必须使用当前Context的{​​{1}}。

使用:

Activity

代替:

Intent numbers = new Intent(MainActivity.this, NumbersActivity.class);

仅供参考,您必须导入Intent numbers = new Intent(this, NumbersActivity.class); 才能使用android.content.Intent

最后,Intent您的项目和Clean。我希望你的问题能得到解决。

答案 1 :(得分:1)

将此替换为YourClassName.this,然后您的问题将得到解决

答案 2 :(得分:1)

用您的代码补充

\t

答案 3 :(得分:1)

使用没问题 Intent numbers = new Intent(MainActivity.this,NumbersActivity.class); Intent numbers = new Intent(this,NumbersActivity.class);

请清理项目并重建,看看问题是否仍然存在,我认为这将消失..

如果出现错误,工作室会向您显示一条消息,同样请您阅读该消息并将其发布以帮助相同...

答案 4 :(得分:0)

您只需声明方法&#34; openNumbers&#34;在活动中的onCreate方法之外

public void openNumbers (View view) {
    Intent numbers = new Intent(CurrentActivity.this, NumbersActivity.class);
    startActivity(numbers);
}