Java 使用隐式意图打开活动

Java 使用隐式意图打开活动,java,android,Java,Android,我得到了NumbersClickListener类的以下错误。我试图使用意图打开NumbersActivity 可以使用MainActivity中的意图打开所有其他活动。代码有什么问题 使用NumbersClickListener类的实现存在一些问题 NumbersClickListener类: package com.example.android.miwok; import android.content.Intent; import android.view.View; import a

我得到了
NumbersClickListener
类的以下错误。我试图使用意图打开
NumbersActivity

可以使用
MainActivity
中的意图打开所有其他活动。代码有什么问题

使用
NumbersClickListener
类的实现存在一些问题

NumbersClickListener类:

package com.example.android.miwok;

import android.content.Intent;
import android.view.View;
import android.widget.Toast;


public class NumbersClickListener implements View.OnClickListener
{
    @Override
    public void onClick (View view)
    {
        Toast.makeText(view.getContext(),"Opening Numbers Category",Toast.LENGTH_SHORT).show();
        Intent i = new Intent(this, NumbersActivity.class);
        startActivity(i);

    }
}
错误与以下代码行有关:Iv尝试了MainActivity。这也是

Intent i = new Intent(this, NumbersActivity.class);
        startActivity(i);
主要活动代码

package com.example.android.miwok;

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;
import static android.R.id.message;
import static android.provider.AlarmClock.EXTRA_MESSAGE;
import static com.example.android.miwok.R.id.phrases;

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);

        NumbersClickListener clickListener = new NumbersClickListener();
        //Find views that shows number category
        TextView numbers = (TextView) findViewById(R.id.numbers);
        numbers.setOnClickListener(clickListener);



        TextView phrases = (TextView) findViewById(R.id.phrases);
        phrases.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent i = new Intent(MainActivity.this, PhrasesActivity.class);
                startActivity(i);
            }
        });

        TextView family = (TextView) findViewById(R.id.family);
        family.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent i = new Intent(MainActivity.this, FamilyActivity.class);
                startActivity(i);
            }
        });
    }

    public void openColorsList(View view) {
         // setContentView(R.layout.activity_colors);   //we can use this to colors xml in main actitvity
        Intent i = new Intent(this, ColorsActivity.class);
        startActivity(i);

    }
}

问题是
Intent i=新的Intent(this,NumbersActivity.class)“这”是数字ClickListener的出现,要开始活动,您需要上下文。因此,将其更改为:

Intent i = new Intent(view.getContext(), NumbersActivity.class);
或者您需要将上下文传递给NumbersClickListener以启动活动

Error:(14, 20) error: no suitable constructor found for Intent(NumbersClickListener,Class<NumbersActivity>)
并使用此上下文而不是
this

getContext()
可以是
MainActivity类中返回
this
的公共方法

现在startActivity(i)是红色的

context.startActivity(你在这里的意图)


我希望有帮助:)

现在startActivity(I)是红色的。错误:(15,9)错误:找不到符号方法startActivity(Intent)错误:任务的执行失败:app:CompiledBugJavaWithJavaC'>编译失败;有关详细信息,请参阅编译器错误输出。view.getContext().startActivity(i)您的类号ClickListener没有方法startActivity,但仅在上下文或活动中使用。因此,为什么我可以在MainActivity中使用startActivity(i),而不是在此处使用。这太令人困惑了。我怎么知道这些呢?看我更新的答案。。我还在编辑它,使它更清楚。等待我的编辑。“这太令人困惑了。我怎么能知道所有这些呢?”是的,如果你是一个初学者,就应该继续学习:)如果你认为我的答案对你有帮助,你可以接受我的答案并投票,谢谢!
Error:(14, 20) error: no suitable constructor found for Intent(NumbersClickListener,Class<NumbersActivity>)
Context context = getContext();
getContext()