2014-07-07 2 views
1

전 슈퍼 멍청입니다. 이를 염두에두고, 저는 gridview의 개별 셀을 다른 색상으로 설정하려고합니다. 나는이 질문이 여러 번 부탁 받았고 나는 그 대부분을 읽었다 고 알고있다. 나는 많은 다른이 일을하는 방법 만 보았다 (나는 믿는다) 가장 간단한와의 getView 방법 @Override했다 :오버뷰 getview가 작동하지 않습니다.

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    View view = super.getView(position, convertView, parent); 

    int color = 0x00FFFFFF; // Transparent 
    if (SOME_CONDITION) { 
     color = 0xFF0000FF; // Opaque Blue 
    } 

    view.setBackgroundColor(color); 

    return view; 
} 

문제 3 라인, super.getview 내가 ' "수 얻을입니다 t 해결 방법 ". "슈퍼"를 제거하면 해결되지만 실제로 오버라이드가 실제로 수퍼 클래스 메서드를 재정의하지 않는다고 말하면서 원래의 코드가 작동하지 않는 이유를 설명해 줄 수 있습니다.

감사

+0

이 코드는하지의 GridView 자체, 어댑터 클래스에 가야한다. – matiash

+0

아 ... 지금은 의미가 있습니다. 코드를 이해하는 데 도움이 될까요?! – Ash

답변

1

이유는이 안드로이드의 GridView 클래스에는의 getView (...) 방법이 없다. 존재하지 않는 것을 무효화 할 수 없습니다.

업데이트 : 어댑터 클래스의 getView (...) 메소드를 대체해야합니다.

+0

맞아요. 클래스 외부로 나가야하고 코드가 도착하면 간단히 실행되어야한다고 생각했습니다. 감사 – Ash

0

당신은 자바의 새로운있을 수 있습니다, 나는 @Override의 다음과 같은 설명이 미래에 스스로 진단 문제에 당신을 위해 도움이 될 것이라고 생각 :

메소드 선언을하는 것을 나타냅니다 상위 유형의 메소드 선언을 겹쳐 쓸 수 있습니다. 방법이 주석 형 컴파일러의 주석을 붙일 수 있고있는 경우 다음 조건 중 하나 이상 보유하지 않는 오류 메시지 를 생성하는 데 필요합니다

The method does override or implement a method declared in a supertype. 
The method has a signature that is override-equivalent to that of any public method declared in Object. 

귀하의 문제가 1 #입니다.

자세한 내용은 http://docs.oracle.com/javase/7/docs/api/java/lang/Override.html을 참조하십시오.

관련 문제