【问题标题】:Android: Non-static method cannot be referenced from a static contextAndroid:不能从静态上下文中引用非静态方法
【发布时间】:2013-06-17 23:01:54
【问题描述】:

我已经在互联网上搜索了这个错误的答案:

无法从静态上下文引用非静态方法“getStringExtra(java.lang.String)”

我没有找到任何东西,所以我来到了这里。这是我用于将信息添加为附加信息的代码:

Intent OpenList = new Intent(this, ListRandom.class);
OpenList.putExtra("ListItem1",List.get(1));
OpenList.putExtra("ListItem2", List.get(2));
OpenList.putExtra("ListItem3", List.get(3));
OpenList.putExtra("ListItem4",List.get(4));
OpenList.putExtra("ListItem5", List.get(5));

这里正在获取 Extras,我得到了错误:

    Intent OpenList = getIntent();
    ListItem1 = Intent.getStringExtra("ListItem1");
    ListItem2 = Intent.getStringExtra("ListItem2");
    ListItem3 = Intent.getStringExtra("ListItem3");
    ListItem4 = Intent.getStringExtra("ListItem4");
    ListItem5 = Intent.getStringExtra("ListItem5");

随着我作为程序员的成长,任何帮助都将不胜感激!

【问题讨论】:

标签: java android


【解决方案1】:

改变

 Intent OpenList = getIntent();
ListItem1 = Intent.getStringExtra("ListItem1");
ListItem2 = Intent.getStringExtra("ListItem2");
ListItem3 = Intent.getStringExtra("ListItem3");
ListItem4 = Intent.getStringExtra("ListItem4");
ListItem5 = Intent.getStringExtra("ListItem5");

 Intent OpenList = getIntent();
ListItem1 = OpenList.getStringExtra("ListItem1");
ListItem2 = OpenList.getStringExtra("ListItem2");
ListItem3 = OpenList.getStringExtra("ListItem3");
ListItem4 = OpenList.getStringExtra("ListItem4");
ListItem5 = OpenList.getStringExtra("ListItem5");

使用您在此处创建的 Intent 对象

Intent OpenList = getIntent();

就像任何其他类一样,使用Intent.getStringExtra("words"); 是以static 的方式调用它,如果您查看Intent Docs getStringExtra(String name) 不是static 方法,那么您创建一个实例如果Intent Intent OpenLIst = getIntent();

此外,为了遵守 Java 编程标准,您应该为变量名使用大小写混合,因此 OpenList 将是 openListListItem1 将是 listItem1。这显然不是编译所必需的,但尝试遵守标准是个好主意

【讨论】:

    【解决方案2】:

    当你写作时:

        ListItem1 = Intent.getStringExtra("ListItem1");
    

    您正在对一个类(即Intent)使用一个方法(即getStringExtra(String name)),这是一种static 方法。

    相反,您应该对对象(即OpenList)使用非静态方法。

    因此,您的代码应更改为:

        ListItem1 = OpenList.getStringExtra("ListItem1");
    

    并应用于 ListItem2、ListItem3 等。

    OpenList

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-21
      • 1970-01-01
      相关资源
      最近更新 更多