0

다른 Android 프로젝트에 내 앱을 구현해야하며 이제 onActivityResult 메소드가 작동하지 않는 문제에 직면하고 있습니다. 내가 성취하고자하는 것은 Intent가 클래스 1 (G_map)에 결과를 반환하지만 작동 방법을 파악할 수 없다는 것입니다.java android, onActivityResult가 작동하지 않습니다.

public class G_map extends GraphObj{ 

    private Context contextOwn; 
    private Activity act; 

    public G_map(GraphObjMgr gom, final Context context, GraphSetting gs) { 
     super(gom, context, gs, R.layout.test_map); 
     Intent i = new Intent(contextOwn, PickLocationActivity.class); 
     act.startActivityForResult(i, 1); 

    //@Override 
    public void onActivityResult(final int requestCode, int resultCode, Intent data) { 
    //super.onActivityResult(requestCode, resultCode, data); 
    Log.e("State", "This won't start."); 
    } 
} 

활성 PickLocationActivity 올바르게 시작 및 제 클래스 I 첫번째 클래스 결과를 얻을 필요

는 클래스 I (1)이있다. onActivityResult 메서드는 @Override가 될 수 없으며 주석을 달면 메서드가 사용되지 않습니다. 그것에 대해 무엇을 할 수 있습니까? 내 응용 프로그램에서 제대로 작동하고 act.startActivityForResult 있지만 startActivityForResult 사용할 필요가 없습니다.

내가 어떻게 든 "act"를 onActivityResult 메서드와 연결할 필요가 있다고 생각하지만 어떻게해야할지 모르겠다. 어떤 제안이라도 도움이 될 것입니다!

클래스 2 :

public class PickLocationActivity extends AppCompatActivity{ 
    ... 
      Intent intent = new Intent(); 
      intent.putExtra("Location Address", predictions.getPlaces().get(position).getPlaceDesc()); 
      intent.putExtra("placeID", predictions.getPlaces().get(position).getPlaceID()); 
      setResult(CUSTOM_AUTOCOMPLETE_REQUEST_CODE, intent); 
      finish(); 
} 

답변

0

@Override 수 없으며 그때 그것을 언급하는 경우이 방법이 사용되지 않습니다 onActivityResult를하는 방법. 그것에 대해 무엇을 할 수 있습니까?

startActivityForResult()이라는 액티비티 또는 조각에서 onActivityResult()을 재정의하십시오.

알아 두어야 할 것은 startActivityForResult()을 호출하기 전에 act에 값을 할당하지 않으므로 첫 번째 코드 단편의 코드가 NullPointerException으로 충돌합니다.

+0

저는 실제로 act = (Activity) 컨텍스트와 같은 값을 할당합니다. 나는 G_map 클래스에서 그 일을하고 있기 때문에 startActivityResult를 호출하는 활동에서 onActivityResult()를 재정의해야한다는 것을 어떻게 알지 못한다. –

+0

@RobinPopelka :'G_map'은 그렇지 않다. 'Activity', 그리고 그것은'startActivityForResult()'를 호출하는 활동이 아닙니다. 'act' 필드 뒤에있는 자바 클래스는 onActivityResult()를 구현하는 클래스 여야합니다. – CommonsWare

+0

CommonsWare에게 감사드립니다. 문제가 발견되었습니다. :) –