不能从静态上下文中引用非静态方法
Non-static method cannot be reference from a static context
我意识到这是关于此问题的其他先前线程的副本,但是我已经阅读了它们,但我无法终生弄清楚如何处理“非静态方法”问题 'getItemAtPosition' 不能从静态上下文中引用。'
这是我的代码:
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();
}
});
}
}
使用 parent
AdapterView 对象,它是 onItemClick
方法中的第一个参数来调用 getItemAtPosition
方法:
String copyFav = String.copyValueOf(parent.getItemAtPosition(position)
.toString(). toCharArray());
出现问题是因为 getItemAtPosition
不是 static
方法,您需要使用有效的对象来调用它。
我意识到这是关于此问题的其他先前线程的副本,但是我已经阅读了它们,但我无法终生弄清楚如何处理“非静态方法”问题 'getItemAtPosition' 不能从静态上下文中引用。'
这是我的代码:
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();
}
});
}
}
使用 parent
AdapterView 对象,它是 onItemClick
方法中的第一个参数来调用 getItemAtPosition
方法:
String copyFav = String.copyValueOf(parent.getItemAtPosition(position)
.toString(). toCharArray());
出现问题是因为 getItemAtPosition
不是 static
方法,您需要使用有效的对象来调用它。