2015-02-03 2 views
0

좋아, 안드로이드 프로그래밍에 아주 익숙해졌습니다. 나는이 수업의 2 주를 시작했고, 저의 삶을 위해서 무엇을 알아낼 수 없습니까? 잘못되고있다. 나는 새로운 액티비티를 추가하고 아무 것도 작동하지 않는 튜토리얼을 읽거나 보았다.Android : 활동을 찾지 못했습니다 (존재하는 앱에 활동을 추가하려고 시도 함)

할당 : 활동 응용 프로그램을 사용하여 네 번째 활동

내 활동이 간단

, 3 개 버튼과 이미지를 추가 할 수 있습니다. 하나의 버튼은 이미지를 보이게하고 다른 버튼은 보이지 않게 만듭니다. 세 번째는 메인으로 돌아갑니다.

참고 : 나는 원래 활동에 버튼이있는 것으로 편집했습니다. 그 이유는 내가 벙어리가 된 d 패드에 센터가 맞았 기 때문입니다. 또 다른 노트는 그 활동이 & 3은 동일한 레이아웃과 나는 주요 활동, 내 활동 (내가 만든 것), 및 활동에 대한 코드를 입력

public class MainActivity extends Activity { 
String tag = "Events"; 

int request_Code = 1; 

/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    //---hides the title bar--- 
    //requestWindowFeature(Window.FEATURE_NO_TITLE); 

    setContentView(R.layout.main); 
    Log.d(tag, "In the onCreate() event"); 

    Button act2Butt = (Button) findViewById(R.id.act2Butt); 
    Button act3Butt = (Button) findViewById(R.id.act3Butt); 
    Button act4Butt = (Button) findViewById(R.id.act4Butt); 

    act2Butt.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View view) { 
      startActivityForResult(new Intent("net.learn2develop.ACTIVITY2"), request_Code); 
     } 
    }); 

    act3Butt.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View view) { 
      startActivityForResult(new Intent("net.learn2develop.ACTIVITY2"), request_Code); 
     } 
    }); 

    act4Butt.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View view) { 
      startActivityForResult(new Intent("net.learn2develop.MYACTIVITY"), request_Code); 
     } 
    }); 
} 
/* 
public boolean onKeyDown(int keyCode, KeyEvent event) 
{ 
    if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER) 
    { 
     //startActivity(new Intent("net.learn2develop.ACTIVITY2"));  
     //startActivity(new Intent(this, Activity2.class)); 

     startActivityForResult(new Intent(
      "net.learn2develop.ACTIVITY2"), 
      request_Code); 

    } 
    return false; 
} 
*/ 

public void onActivityResult(int requestCode, int resultCode, Intent data) 
{ 
    if (requestCode == request_Code) { 
     if (resultCode == RESULT_OK) {     
      Toast.makeText(this,data.getData().toString(), 
       Toast.LENGTH_LONG).show(); 
     }    
    } 
} 

public void onStart() 
{ 
    super.onStart(); 
    Log.d(tag, "In the onStart() event"); 
}  
public void onRestart() 
{ 
    super.onRestart(); 
    Log.d(tag, "In the onRestart() event"); 
}  
public void onResume() 
{ 
    super.onResume(); 
    Log.d(tag, "In the onResume() event"); 
} 
public void onPause() 
{ 
    super.onPause(); 
    Log.d(tag, "In the onPause() event"); 
}  
public void onStop() 
{ 
    super.onStop(); 
    Log.d(tag, "In the onStop() event"); 
}  
public void onDestroy() 
{ 
    super.onDestroy(); 
    Log.d(tag, "In the onDestroy() event"); 
}  

public class MyActivity extends Activity{ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity4); 

    Button yesButt = (Button) findViewById(R.id.yesButton); 
    Button noButt = (Button) findViewById(R.id.noButton); 
    Button finButt = (Button) findViewById(R.id.finButton); 
    final ImageView img1 = (ImageView) findViewById(R.id.image1); 


    yesButt.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View view) { 
      img1.setVisibility(View.VISIBLE); 
     } 
    }); 
    noButt.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View view) { 
      img1.setVisibility(View.INVISIBLE); 
     } 
    }); 
    finButt.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View view) { 
      Intent data = new Intent(); 
      data.setData(Uri.parse("OMG IT WORKS")); 
      setResult(RESULT_OK, data); 

      finish(); 
     } 
    }); 
} 

public class Activity2 extends Activity { 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity2); 

    String defaultName=""; 
    Bundle extras = getIntent().getExtras(); 
    if (extras!=null) 
    { 
     defaultName = extras.getString("Name");   
    } 
    //---get the EditText view--- 
    EditText txt_username = 
     (EditText) findViewById(R.id.txt_username);   
    txt_username.setHint(defaultName); 

    //---get the OK button--- 
    Button btn = (Button) findViewById(R.id.btn_OK); 

    //---event handler for the OK button--- 
    btn.setOnClickListener(new View.OnClickListener() 
    { 
     public void onClick(View view) { 
      Intent data = new Intent(); 

      //---get the EditText view--- 
      EditText txt_username = 
       (EditText) findViewById(R.id.txt_username); 

      //---set the data to pass back--- 
      data.setData(Uri.parse(
       txt_username.getText().toString()));       
      setResult(RESULT_OK, data); 

      //---closes the activity--- 
      finish(); 
     } 
    }); 
} 

말할 수있는 것과 기본적으로 같은 일을 2. 내 활동은 훌륭하게 실행되고 내가 원하는대로 정확하게 수행하지만, 메인에서 액세스하려고하면 죽습니다.

928-928/net.learn2develop.Activities E/AndroidRuntime : 치명적인 예외 : 주요 프로세스 : net.learn2develop.Activities, PID : 928 android.content.ActivityNotFoundException가 없음 활동 텐트를 처리하기 위해 발견 {행위 android.app.Activity.startActivityForResult에서 android.app.Instrumentation.execStartActivity (Instrumentation.java:1485) 에서 android.app.Instrumentation.checkStartActivityResult (Instrumentation.java:1765)에서 = net.learn2develop.MYACTIVITY} (활동 .java : 3736) android.app.Activity.startActivityForResult (Activity.java:3697) at net.learn2develop.Activities.MainActivity $ 3.onClick (MainActivity.java:48) at android.view.View.performClick (View.java:4756) android.view.View $ PerformClick.run (View.java:19749) android.os. Handler.handleCallback (Handler.java:739) at android.os.Handler.dispatchMessage (Handler.java:95) at android.os.Looper.loop (Looper.java:135) android.app.ActivityThread. main (ActivityThread.java:5221) at java.lang.reflect.Method.invoke (네이티브 메소드) at java.lang.reflect.Method.invoke (Method.java:372) at com.android.internal.os .ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:899) at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:694)

이 코드는 나의 마지막 시도이며 손을 얹기 전에 ​​작동하도록 만드는 코드입니다. 마지막으로 내 활동을 다른 활동과 동일하게 만들고 startActivityForResult를 사용했습니다.

도움이 될 것입니다. 중요한지는 모르지만 bin 디렉토리에는 My Activity에 대한 .class가 없지만 다른 모든 것에 대해서는 하나가 있습니다.

더 자세한 정보가 필요하면 질문하십시오.

전에 말했듯이, 나는 안드로이드 전체에서 정말 새로운 것 같습니다.

편집 :

<activity android:name=".MyActivity" 
       android:label="My Activity"> 
     <intent-filter> 
      <action android:name="net.learn2develop.MYACTIVITY" /> 
      <category android:name="android.intent.category.DEFAULT" /> 
     </intent-filter> 
    </activity> 
+0

매니페스트 파일을 게시 할 수 있습니까? – Ethan

+0

내 활동에 대한 내 매니페스트 항목을 추가했습니다. – Kyle

답변

0

당신은 매니페스트에 Activity을 추가해야 할 수 있습니다 매니페스트. 이 작업을 완료했다면 Intent을 약간 다르게 사용하는 것이 좋습니다. Intent 다음과 같은 방법을 사용하여

시도 :

Intent intent = new Intent(MyActivity.this, SecondActivity.class); 
startActivityForResult(intent, requestCode); 

Intent의 첫 번째 매개 변수는 현재 Activity입니다. 두 번째 매개 변수는 이동하려는 Activity입니다. 이 방법으로 Intent을 처리하면 해당 예외를 throw하는 패키지 이름에 작은 오타가 생기지 않습니다. Activity으로 이동하려는 경우 매니페스트에 있고 위의 코드처럼 Intent을 설정하면 모든 것이 올바르게 작동합니다.

행운과 행복 코딩! 다른 엔지니어가 JVM 당신이 참조하는 클래스를 찾을 수 있도록 매니페스트 파일에이 활동을 추가 말했듯이

+0

이것은 참으로 감사합니다. 내가 게시 할 때까지 그리고 그 17 분 후에 고정 시간까지 3 시간 걸렸다. – Kyle

0

매니페스트 당신은 당신의 활동을 추가 할 필요가 당신의

<activity 
    android:name=".MySecondActivity" 
    android:label="@string/title_second_activity"> 
</activity> 
0
net.learn2develop.MYACTIVITY 

안드로이드는 위의 활동을 finiding되지 않습니다.

관련 문제