Android Intent 无法解析构造函数
Posted
技术标签:
【中文标题】Android Intent 无法解析构造函数【英文标题】:Android Intent Cannot resolve constructor 【发布时间】:2013-12-13 01:24:39 【问题描述】:我有一个扩展 Fragment 的类,还有一个扩展 Activity 的类。
我的 Fragment 工作正常,我在 Fragment 中的 Intent 代码是:
ImageButton button= (ImageButton) getView().findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View v)
Intent myIntent = new Intent(MyFragment.this, MyClass.class);
MyFragment.this.startActivity(myIntent);
);
我的班级 MyClass 代码是:
public class MyClass extends Activity
@Override
public void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
// The activity is being created.
@Override
protected void onStart()
super.onStart();
setContentView(R.layout.MyClass);
错误是:
Gradle: cannot find symbol constructor Intent(com.xxxx.xxxx.MyFragment,java.lang.Class<com.xxxx.xxxx.MyClass>)
我不知道我哪里出错了。
【问题讨论】:
【参考方案1】:使用
Intent myIntent = new Intent(v.getContext(), MyClass.class);
或
Intent myIntent = new Intent(MyFragment.this.getActivity(), MyClass.class);
开始一个新的活动。这是因为当您为应用程序的特定组件创建 Intent 时,您需要将 Application 或组件上下文作为第一个参数传递给 Intent 构造函数。
【讨论】:
Intent intent = new Intent(getApplicationContext(), myClass.class);
非常感谢。但是为什么这在主要的android资源中的任何地方都没有?
@Kruger Brent 你应该问负责“主要android资源”的人。我不相信他们会阅读 ***,或者至少不会定期阅读。
这件事发生在我身上。我在回调块期间使用了新的 Intent 并指定了源类 this。这就是我出错的原因。【参考方案2】:
或者您可以简单地启动活动,如下所示;
startActivity( new Intent(currentactivity.this, Tostartactivity.class));
【讨论】:
“或者”?参考什么?我在这里看不到任何不那么简单的东西......【参考方案3】:你可以使用这个:
Intent intent = new Intent(getApplicationContext(), ClassName.class);
【讨论】:
如果该活动正在扩展除AppCompatActivity
或Activity
之外的任何活动,则只有此解决方案有效。【参考方案4】:
使用
.getActivity()
可以解决这个问题:
例如。
Intent i= new Intent(MainActivity.this.getActivity(), Next.class);
startActivity(i);
希望这会有所帮助。
干杯。
【讨论】:
【参考方案5】:您不能使用Intent's Context
创建意图。所以你需要使用你的Fragment's
Parent Activity
Context
Intent intent = new Intent(getActivity(),MyClass.class);
【讨论】:
【参考方案6】:我的代码在 Activity 中出现了同样的错误,但在 Fragment 中没有。显示不同行的构造函数错误,如 new Intent(From.this, To.class) 和 new ArrayList 等。
通过关闭 Android Studio 并将存储库移动到其他位置并再次打开项目进行了修复。修复了问题。
似乎是 Android Studio 构建问题。
【讨论】:
【参考方案7】:这对我有用
ncharacters.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View view)
Intent openncharacter = new Intent(getApplicationContext(),ncharacters.class);
startActivity(openncharacter);
);
【讨论】:
以上是关于Android Intent 无法解析构造函数的主要内容,如果未能解决你的问题,请参考以下文章
Android - 无法解析方法'onActivityResult(int,int,android.content.Intent)
InstantiationException:没有零参数构造函数?
无法解析构造函数:“dojox.mobile.RoundRectCategory”
创建 ElasticSearchRepository 时出现 BeanCreationException - 无法解析匹配的构造函数