ListView 어댑터가 있습니다.
public class CartList extends BaseAdapter {
// ...
@Override
public long getItemId(int i) { return i; }
// ...
}
그리고이 활동이 있습니다.
public class ListActivity extends AppCompatActivity {
ListView lv_list;
static ArrayList<CartEntity> lista1 = new ArrayList<CartEntity>();
@Override
protected void onCreate(Bundle savedInstanceState) {
// my_code;
lv_list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
final int pos = position;
CartEntity item = CartList.getItem(pos);
}
});
}
다음과 같은 오류가 표시됩니다.
비 정적 메서드 'getItem (int)'은 정적 컨텍스트에서 참조 할 수 없습니다.
선택한 항목을 가져 오기 위해 메서드를 호출하려면 어떻게해야합니까? 'getItem'줄이 없으면 잘 작동하지만 개체가 필요합니다.
Java의 액세스 수정 자에 대해 알아보십시오. 다음 과 같이 lista1
get () 메서드 호출 에서 항목을 가져올 수 있습니다.ArrayList
CartEntity item = lista1.get(pos)
또는 여전히 CartEntity
어댑터에서 원하는 경우 어댑터를 로컬 변수 또는 인스턴스 변수로 만들고 getItem()
공용이므로 호출 할 수 있습니다.
public class ListActivity extends AppCompatActivity {
ListView lv_list;
static ArrayList<CartEntity> lista1 = new ArrayList<CartEntity>();
@Override
protected void onCreate(Bundle savedInstanceState) {
// Create object from Adapter Class
CartList cartAdapter = new CartList();
// my_code;
lv_list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
final int pos = position;
CartEntity item = cartAdapter.getItem(pos);
}
});
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다