Java 不能从静态上下文引用非静态方法
我意识到这是关于这个问题的其他先前线程的重复,但是我已经阅读了它们,并且我无法解决如何处理“非静态方法”getItemAtPosition“不能从静态上下文引用”的问题 这是我的密码:Java 不能从静态上下文引用非静态方法,java,android,static,sdk,non-static,Java,Android,Static,Sdk,Non Static,我意识到这是关于这个问题的其他先前线程的重复,但是我已经阅读了它们,并且我无法解决如何处理“非静态方法”getItemAtPosition“不能从静态上下文引用”的问题 这是我的密码: public class Favourites extends Insulter { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setConte
public class Favourites extends Insulter {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.favourites);
ArrayList<String> favs = getIntent().getStringArrayListExtra("favs");
ListAdapter theAdapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, favs);
ListView listView = (ListView) findViewById(R.id.favsList);
listView.setAdapter(theAdapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
String copyFav = String.copyValueOf(AdapterView.getItemAtPosition(position));
myClip = ClipData.newPlainText("copyFav", copyFav);
myClipboard.setPrimaryClip(myClip);
Toast.makeText(getApplicationContext(), R.string.copied, Toast.LENGTH_SHORT).show();
}
});
}
公共类收藏夹扩展侮辱者{
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.Favorites);
ArrayList favs=getIntent().GetStringArrayListXTRA(“favs”);
ListAdapter theAdapter=new ArrayAdapter(这是android.R.layout.simple\u list\u item\u 1,favs);
ListView ListView=(ListView)findViewById(R.id.favsList);
setAdapter(theAdapter);
setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
String copyFav=String.copyValueOf(AdapterView.getItemAtPosition(position));
myClip=ClipData.newPlainText(“copyFav”,copyFav);
myClipboard.setPrimaryClip(myClip);
Toast.makeText(getApplicationContext(),R.string.copied,Toast.LENGTH_SHORT).show();
}
});
}
}使用AdapterView的
父对象
对象,它是onItemClick
方法中的第一个参数,用于调用getItemAtPosition
方法:
String copyFav = String.copyValueOf(parent.getItemAtPosition(position)
.toString(). toCharArray());
出现问题的原因是
getItemAtPosition
不是静态的
方法,您需要使用有效的对象来调用它。您需要使用parent.getItemAtPosition(position)
。正如您所说,我更改了代码,但是我得到一个不同的错误,字符串中的copyValueOf(Char[])不能应用于(java.lang.object)。有什么想法吗?@James:看我的编辑answer@James:但是为什么不只使用String copyFav=parent.getItemAtPosition(position).toString()
?我对这一切都很陌生,我想这可能是我正在学习的教程的一部分,非常感谢您的帮助。