我在互联网上到处寻找这个错误的答案:
不能从静态上下文引用非静态方法“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");当我成长为一名程序员时,任何帮助都将不胜感激!
发布于 2013-06-18 07:03:49
变化
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 OpenLIst = getIntent();执行Intent,则创建一个实例
此外,为了坚持Java编程标准,您应该对变量名使用大小写混合的形式,这样OpenList就是openList,ListItem1就是listItem1。这显然不是编译所必需的,但尝试并坚持标准是一个好主意
发布于 2017-07-12 20:26:34
当你写的时候:
ListItem1 = Intent.getStringExtra("ListItem1");您正在对一个类(即Intent)使用一个方法(即getStringExtra(String name)),这是一种static方法。
相反,对于非静态方法,您应该使用对象上的方法(即OpenList)。
因此,您的代码应更改为:
ListItem1 = OpenList.getStringExtra("ListItem1");并应用于ListItem2、ListItem3等。
OpenList
https://stackoverflow.com/questions/17158238
复制相似问题