2011-06-13 2 views
-1
private TextView text; 

if(available == true){ 
     View view = (View)findViewById(R.id.emptyprogram); 
     view.setVisibility(View.GONE); 
     filldata(); 
    } else { 
     text = (TextView)findViewById(R.id.emptyprogram); 
     text.setText("Tiada Rancangan Yang Sedang Atau Akan Disiarkan!!!"); 
    } 
} 

, 그것은 라인 text.settext("...");NullPointerException가

문제가 무엇에 나에게 NullPointerException 오류를했다? 나는 다른 편에서 뛰다. 아무런 문제가 없다. 당신이 다음 줄의 setText 메소드를 호출 할 때

+2

먼저 말해 경우 (사용할 수를 == true)''아니고 if (available)'입니까? 중괄호도 적절하지 않습니다. 추가 브래킷이 하나 있습니다. *** 나는 다른 쪽에서 달린다. 아무 문제가 없다. *** 다른 쪽? –

+0

'findViewById'가 null을 반환하는 경우에만 해당 행에 널 포인터를 얻을 수있는 유일한 방법입니다. –

+0

"현재 또는 미래의 디자인 방송이 없습니다 !!!" ? –

답변

4

이 메서드 호출이 null

findViewById(R.id.emptyprogram); 

를 반환해야합니다, 당신은 NullPointerException

+0

왜 null이 될까요? 내 다른 textview 호출 r.id.emptycandidate 또한 null 반환 null – newonandroid

+0

@newonandroid - 나는 아마도 그 방법의 소스 코드를 보지 않고 대답 할 수 없습니다. 매개 변수의 ** 값 **이 호출 된 횟수와 동일한 지 확인 했습니까? –

0

당신이 findViewById()를 호출하기 전에 setContentView()를 불렀다거야? 당신은 당신의 UI를 만들 수 있습니다 만 다음을 사용할 수 있습니다 ..

+0

예, 그냥 문제가 발생하는 코드를 자릅니다. – newonandroid

+0

여기에 xml 코드를 넣고 setContentView()를 호출하면 문제의 원인이됩니다. – damluar

0

당신이 두려워 텍스트 뷰가 null의 경우, 예외를 피하기 위해이 하나를 시도해보십시오 : 당신은`사용 이유

text = (TextView)findViewById(R.id.emptyprogram); 
if(text != null) 
    text.setText("Tiada Rancangan Yang Sedang Atau Akan Disiarkan!!!"); 
+0

이것은 공백 문자로'text'를 처리하는 방법이있는 경우에만 적합합니다. 'text'가 null이 될 것으로 예상되지 않는다면, NPE를 던지면 위의 코드보다 바람직합니다. 왜냐하면 위의 코드는 근본적인 문제를 단순히 감추기 때문입니다 –