2014-04-14 3 views
0

내 활동에서 팝업 창을 열고 싶지만 다른 클래스의 팝업을 구현하고 싶습니다. 나는이 tutorial을 사용하고 있지만 내 응용 프로그램이 충돌합니다.활동이없는 클래스의 팝업 창 Android

04-14 21:22:43.095: E/AndroidRuntime(575): FATAL EXCEPTION: main 
04-14 21:22:43.095: E/AndroidRuntime(575): java.lang.NullPointerException 
04-14 21:22:43.095: E/AndroidRuntime(575): at com.example.victwo.PopupAudio.popupInit(PopupAudio.java:21) 
04-14 21:22:43.095: E/AndroidRuntime(575): at com.example.victwo.NoteActivity.onOptionsItemSelected(NoteActivity.java:172) 
04-14 21:22:43.095: E/AndroidRuntime(575): at android.app.Activity.onMenuItemSelected(Activity.java:2205) 
04-14 21:22:43.095: E/AndroidRuntime(575): at android.support.v4.app.FragmentActivity.onMenuItemSelected(FragmentActivity.java:372) 
04-14 21:22:43.095: E/AndroidRuntime(575): at android.support.v7.app.ActionBarActivity.superOnMenuItemSelected(ActionBarActivity.java:244) 
04-14 21:22:43.095: E/AndroidRuntime(575): at android.support.v7.app.ActionBarActivityDelegateBase.onMenuItemSelected(ActionBarActivityDelegateBase.java:352) 
04-14 21:22:43.095: E/AndroidRuntime(575): at android.support.v7.app.ActionBarActivity.onMenuItemSelected(ActionBarActivity.java:130) 
04-14 21:22:43.095: E/AndroidRuntime(575): at android.support.v7.app.ActionBarActivityDelegateBase.onMenuItemSelected(ActionBarActivityDelegateBase.java:357) 
04-14 21:22:43.095: E/AndroidRuntime(575): at android.support.v7.internal.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:777) 
04-14 21:22:43.095: E/AndroidRuntime(575): at android.support.v7.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:158) 
04-14 21:22:43.095: E/AndroidRuntime(575): at android.support.v7.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:922) 
04-14 21:22:43.095: E/AndroidRuntime(575): at android.support.v7.internal.view.menu.ActionMenuView.invokeItem(ActionMenuView.java:544) 
04-14 21:22:43.095: E/AndroidRuntime(575): at android.support.v7.internal.view.menu.ActionMenuItemView.onClick(ActionMenuItemView.java:105) 
04-14 21:22:43.095: E/AndroidRuntime(575): at android.view.View.performClick(View.java:2485) 
04-14 21:22:43.095: E/AndroidRuntime(575): at android.view.View$PerformClick.run(View.java:9080) 
04-14 21:22:43.095: E/AndroidRuntime(575): at android.os.Handler.handleCallback(Handler.java:587) 
04-14 21:22:43.095: E/AndroidRuntime(575): at android.os.Handler.dispatchMessage(Handler.java:92) 
04-14 21:22:43.095: E/AndroidRuntime(575): at android.os.Looper.loop(Looper.java:123) 
04-14 21:22:43.095: E/AndroidRuntime(575): at android.app.ActivityThread.main(ActivityThread.java:3683) 
04-14 21:22:43.095: E/AndroidRuntime(575): at java.lang.reflect.Method.invokeNative(Native Method) 
04-14 21:22:43.095: E/AndroidRuntime(575): at java.lang.reflect.Method.invoke(Method.java:507) 
04-14 21:22:43.095: E/AndroidRuntime(575): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
04-14 21:22:43.095: E/AndroidRuntime(575): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
04-14 21:22:43.095: E/AndroidRuntime(575): at dalvik.system.NativeStart.main(Native Method) 

내가 무엇을 알고하지 않습니다

package com.example.victwo; 

import android.app.ActionBar.LayoutParams; 
import android.content.Context; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.LinearLayout; 
import android.widget.PopupWindow; 
import android.widget.TextView; 

public class PopupAudio implements OnClickListener { 

    LinearLayout layoutOfPopup; 
    PopupWindow popupMessage; 
    Button popRecord, popStopRecord, popPlay, popStopPlaying; 
    TextView popupText; 

    public void popupInit() { 
     popRecord.setOnClickListener(this); 
     popStopRecord.setOnClickListener(this); 
     popupMessage = new PopupWindow(layoutOfPopup, LayoutParams.WRAP_CONTENT, 
       LayoutParams.WRAP_CONTENT); 
     popupMessage.setContentView(layoutOfPopup); 
    } 

    public void init(Context context) { 
     popRecord = new Button(context); 
     popRecord.setId(112); 
     layoutOfPopup = new LinearLayout(context); 
     popRecord.setText("REC"); 
     layoutOfPopup.setOrientation(1); 
     layoutOfPopup.addView(popRecord); 
    } 

    @Override 
    public void onClick(View v) { 
     // TODO Auto-generated method stub 
     switch(v.getId()) { 
     case 112: 

      break; 
     } 
    } 

} 

이것은 로그 캣에서 주어진 것입니다 : 나는 방법이 있습니다 (init) 내 활동과 다른 모든 것들에서 popupInit()가 여기 전화 문제와 나는 당신이 나를 도울 경우 매우 감사 할 것입니다 :)

답변

0

코드를 점검하십시오 popStopRecord는 null입니다. 인스턴스화하지 않았습니다.

popStopRecord.setOnClickListener(this); 

이것은 회선 충돌입니다.

+0

예, 고맙습니다. 이것이 문제였습니다. 하지만 지금 나는 다른 것을 가지고있다. 팝업 창이 부 풀리지 않습니다. 도와 줄수있으세요? – user3132352

+0

이것을 확인하십시오 http://mrbool.com/how-to-implement-popup-window-in-android/28285. 여전히 문제가 발생하면 새로운 질문을 만들 것을 제안합니다. – Libin