2013-08-23 3 views
0

저는 Android에 익숙하지 않아 기본 MainActivity 클래스가 아닌 다른 Android 프로젝트에서 클래스를 만들었고 해당 파일로 프로젝트를 시작하려고합니다. 여기에 내가 내 매니페스트 파일에 추가 된 것입니다 :다른 Java 파일을 실행 프로그램으로 설정하는 방법

<activity 
     android:name="com.example.surfaceview.SurfaceViewExample" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="android.intent.action.SURFACEVIEW" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 

그리고 내가 만든 클래스 :

public class SurfaceViewExample extends Activity implements OnTouchListener { 

OurView v; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    v=new OurView(this); 
    setContentView(v); 
    v.setOnTouchListener(this); 
} 



@Override 
protected void onPause() { 
    // TODO Auto-generated method stub 
    super.onPause(); 
    v.pause(); 
} 



@Override 
protected void onResume() { 
    // TODO Auto-generated method stub 
    super.onResume(); 
    v.resume(); 
} 



public class OurView extends SurfaceView implements Runnable{ 

    Thread t = null; 
    SurfaceHolder holder; 
    boolean isItOK=false; 

    public OurView(Context context) { 
     super(context); 
     holder=getHolder(); 
    } 

    @Override 
    public void run() { 
     while(isItOK){ 
      if(holder.getSurface().isValid()){ 
       continue; 
      } 

      Canvas c = holder.lockCanvas(); 
      c.drawARGB(255, 155, 155, 10);//canvas backgroundu boyama 
      holder.unlockCanvasAndPost(c); 
     } 

    } 

    public void pause(){ //pause the thread 
     isItOK=false; 
     while(true){ 
      try{ 
       t.join(); 
      }catch(InterruptedException e){ 
       e.printStackTrace(); 
      } 
      break;    
     } 
     t=null; 
    } 

    public void resume(){ //resume the thread 
     isItOK=true; 
     t=new Thread(this); //this parameter means use this run method 
          //which is inside that class 
     t.start(); 
    } 


} 



@Override 
public boolean onTouch(View v, MotionEvent me) { 
    return false; 
} 

} 

그러나 응용 프로그램이 시작되지 않습니다. 문제는 그 의도 필터 안의 라인에있을 것 같아요 :

<action android:name="android.intent.action.SURFACEVIEW" /> 

아무도 도와 줄 수 있습니까?

감사

+2

AndroidManifest.xml에''을 추가하십시오. –

+0

@HugoHidekiYamashita 그것을 의도 필터 안에 추가해야합니까? 나는 그것을했지만 작동하지 않았다. – yrazlik

+0

실제로 로 바 꾸었습니다. – yrazlik

답변

1

업데이트 활동에 대한 다음 코드를 사용하여 매니페스트. 이제 귀하의 활동이 시작됩니다.

<activity 
     android:name="com.example.surfaceview.SurfaceViewExample" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 

이 정보가 도움이되기를 바랍니다.

관련 문제