2016-12-29 8 views
1

firebase를 사용하여 채팅 앱을 구축 중입니다. 새 메시지를받을 때 사용자에게 알리려고합니다. 내 문제는 this입니다.빌더에 적용 할 수 없습니다.

reference1.addChildEventListener(new ChildEventListener() { 
    @Override 
    public void onChildAdded(DataSnapshot dataSnapshot, String s) { 
     Map map = dataSnapshot.getValue(Map.class); 
     String message = map.get("message").toString(); 
     String userName = map.get("user").toString(); 
//If i am the sender 
     if(userName.equals(UserDetails.username)){ 
      addMessageBox("You:-\n" + message, 1); 
     } 
     else { 
//if somebody else send a message 
       addMessageBox(UserDetails.chatWith + ":-\n" + message, 2); 

      NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this) 
          .setSmallIcon(R.drawable.hello) 
          .setContentTitle("My notification") 
          .setContentText("Hello World!"); 



     } 
    } 

모든 팁 : 여기 builder(content.context) in builder cannot be applied to (anonymous com......)

내 코드 없다는 오류는 무엇입니까?

편집 아래 답변에서 언급

문제는 이것이 ChildEventListener 지칭 아니라 활성 그래서이 ChildEventListener 그래서 "이"를 참조 할 수있어서 외부면을 만드는 것으로 인 그것을 스스로 부르고 그것을 내가 원하는 곳이라고 부른다.

+1

사용'MainActivity.this' 내 context를 사용하거나 어떤 이름 당신의 활동 –

+0

오류가 사라지고하지만 어떤을 수신 할 수 없습니다 알림 – mahmoud

답변

2

new ChildEventListener()를 가리킨다.

예를 들어 활동이 될 컨텍스트가 필요합니다.

그래서 당신도 YourActivity.this, 또는

final Context context = this; 
reference1.addChildEventListener(new ChildEventListener() { 
    @Override 
    ... 

를 사용하여 이벤트 리스너

+0

오류가 사라졌지만 알림을받지 못했습니다. – mahmoud

+1

무엇을 말할지 잘 모르겠습니다. 당신의 질문은 단지 컴파일 할 코드를 얻는 것에 불과했습니다. –

+0

빌더 만 만들었습니다. 귀하의 질문에 아무 것도 표시하지 않을 것입니다 –

관련 문제