【问题标题】:Intent only showing constructor with only one parameter意图只显示只有一个参数的构造函数
【发布时间】:2018-11-13 00:06:48
【问题描述】:

我想在单击按钮时启动一个活动,但问题是 android studio 只显示一个构造函数! 我想使用带两个参数的构造函数,如下:screen shot

Intent intent = new Intent (this, myActivityName.class);

注意:Intent 已导入。

【问题讨论】:

  • 向我们展示您迄今为止尝试过的一些代码示例
  • 与导入一起分享您的代码
  • 使用 your_activity_name.this 而不是只使用这个。
  • Intent”已导入?所有 Android 类都是“导入的”——这是什么意思?而且您没有发布尝试使用两个参数的错误,但有时 IDE 会显示错误,但在构建尝试后它们会消失。或者这可能是另一个问题。

标签: java android android-studio


【解决方案1】:

您可以使用两个参数调用 new Intent,它应该可以工作。仅仅因为 AS 没有显示构造函数签名并不意味着它不存在。

如上所述你还需要调用

Intent(YourActivityName.this, myActivityName.class);

代替

Intent(this, myActivityName.class);

后一种情况下的this 将引用您为实现 OnClickListener 接口而创建的匿名类

【讨论】:

  • 它显示了什么错误。在您的问题中添加错误详细信息或作为评论,然后它将给出更多回复
【解决方案2】:

其实你可以写。如果不能,请上传图片,详细说明 setonitemclicklistener 和红线下划线的错误。

有用的链接:

https://developer.android.com/reference/android/content/Intent

how to start new activity via gridview onitemclick?

【讨论】:

    【解决方案3】:

    在该屏幕截图中,括号中的文本不是构造函数参数的文档,它是类的包定义。在这种特殊情况下,它告诉您第一行的 Intent 类是 android.content 包的一部分。

    这在您的情况下不是很有帮助,但在其他情况下,它将帮助您区分具有相同名称的两个类。例如,您可能会看到

    • Date (java.util)
    • Date (java.sql)
    • ...

    如果您已正确导入 android.content.Intent,并且当您尝试使用所需的构造函数时 Android Studio 仍然给您一个错误,我认为问题是您向构造函数传递了错误的参数。很容易不小心写成这样:

    Intent intent = new Intent(this, MyOtherActivity.class);
    

    当您在匿名内部类中时,例如 OnItemClickListenerthis 关键字实际上是指点击监听器,而不是您的活动。但是,您可以限定 this 关键字以获得您想要的行为:

    Intent intent = new Intent(VegetablesViewActivity.this, MyOtherActivity.class);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-04-24
      • 2013-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多