我已经在互联网上搜索了这个错误的答案:
无法从静态上下文引用非静态方法'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");
任何帮助都会受到赞赏,因为我正在成长为程序员!
答案 0 :(得分: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();
与任何其他课程一样,使用Intent.getStringExtra("words");
以static
方式调用它,如果您查看Intent Docs getStringExtra(String name)
,则不是static
方法,以便在Intent
Intent OpenLIst = getIntent();
此外,为了坚持使用Java编程标准,您应该为变量名使用大小写,因此OpenList
将是openList
而ListItem1
将是listItem1
。这对于编译显然不是必需的,但尝试坚持标准是个好主意
答案 1 :(得分:0)
当你写:
ListItem1 = Intent.getStringExtra("ListItem1");
您在某个类(即getStringExtra(String name)
)上使用了一种方法(即Intent
),这是static
方法。
相反,您应该在对象(即OpenList
)上使用方法来进行非静态方法。
因此,您的代码应更改为:
ListItem1 = OpenList.getStringExtra("ListItem1");
并应用于ListItem2,ListItem3等。
OpenList