gpt4 book ai didi

java - 如何在 Listener 类中修复 "error: cannot find symbol method startActivity(Intent)"?

转载 作者:行者123 更新时间:2023-11-29 23:22:39 25 4
gpt4 key购买 nike

我可以通过在 MainActivity.java 中编写代码来创建一个 Intent 以打开其他 Activity。然后我尝试使用一个类创建一个 Intent 并在 MainActivity.java 中调用它。但它变成了错误。如何解决这个问题?

当我在 MainActivity.java 中编写 startActivity(numberIntent); 时没有错误,但是当我将这行代码移动到 NumbersClickListener.java

错误来了:

  1. error: cannot find symbol method startActivity(Intent)
  2. error: not an enclosing class: MainActivity

这是我的代码在 MainActivity.java 中

package com.example.android.*****;

import android.content.Intent;
import android.os.Bundle;
import android.support.v4.widget.TextViewCompat;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

@Override

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

setContentView(R.layout.activity_main);

NumbersClickListener clickListener = new NumbersClickListener();

TextView numbers = (TextView)findViewById(R.id.numbers);

numbers.setOnClickListener(clickListener);
}

在 NumbersClickListener.java 中

package com.example.android.*****;

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

OnClickListener should be written in capital letter
public class NumbersClickListener implements View.OnClickListener {
@Override
public void onClick(View view) {//.makeText(view.getContext(),
"open the list of numbers", Toast.LENGTH_SHORT).show();
Intent numberIntent = new Intent(MainActivity.this,
NumbersActivity.class);
startActivity(numberIntent);
}
}

最佳答案

error: cannot find symbol method startActivity(Intent)” in a class of Listener?

因为如果 startActivity(Intent) 是一个 Activity 方法并且它需要从上下文调用

如果你想调用 startActivity(Intent) 你需要使用的外部 Activity Context.startActivity(numberIntent);

使用这个

view.getContext().startActivity(numberIntent);

代替这个

startActivity(numberIntent);

示例代码

public class NumbersClickListener implements View.OnClickListener {
@Override
public void onClick(View view) {
Intent numberIntent = new Intent(view.getContext(),
NumbersActivity.class);
view.getContext().startActivity(numberIntent);
}
}

关于java - 如何在 Listener 类中修复 "error: cannot find symbol method startActivity(Intent)"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53985316/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com