0

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

无法从静态上下文引用非静态方法“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));

这里得到了额外的东西,我得到了错误:

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

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

4

2 回答 2

5

改变

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

就像任何其他类一样, usingIntent.getStringExtra("words");是以某种static方式调用它,如果您查看Intent Docs getStringExtra(String name)不是一种static方法,因此如果Intent使用Intent OpenLIst = getIntent();

此外,为了遵守 Java 编程标准,您应该对变量名使用混合大小写,so OpenListwould beopenListListItem1will be listItem1. 这显然不是编译所必需的,但尝试遵守标准是个好主意

于 2013-06-17T23:03:48.717 回答
0

当你写:

    ListItem1 = Intent.getStringExtra("ListItem1");

getStringExtra(String name)在类 (ie ) 上使用方法 (ie Intent),这是一种static方法。

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

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

    ListItem1 = OpenList.getStringExtra("ListItem1");

并应用于 ListItem2、ListItem3 等。

OpenList

于 2017-07-12T12:26:33.743 回答