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" />
아무도 도와 줄 수 있습니까?
감사
AndroidManifest.xml에' '을 추가하십시오. –
@HugoHidekiYamashita 그것을 의도 필터 안에 추가해야합니까? 나는 그것을했지만 작동하지 않았다. – yrazlik
실제로 을 로 바 꾸었습니다. –
yrazlik