2017-08-03 8 views
1

私は2つのアクティビティロケーションアクティビティとホームアクティビティを持ち、2つの異なるボタンを持っています.2つはロケーションアクティビティbtnGPSStartPointとbtnGPSEndPointを起動します。親アクティビティから自動的にマップアクティビティを呼び出し、データを自動的に保存する

btnGPSStartPointからロケーションアクティビティを起動したときにstartLatLong varibaleに、btnGPSEndPointからロケーションアクティビティを起動するときにEndLatLong変数にsendLocationを格納したいとします。

私はPlzを助けて...

ホームアクティビティ出力

としてsendLocationと方法としての活性を使いたい要するに

 btnGPSStartPoint.setOnClickListener(new View.OnClickListener() 
    { 
     @Override 
     public void onClick(View v) { 
      startActivityForResult((new Intent(getApplicationContext(), Location.class)),1); 
      StartLatLong = getLocation; 

     } 
    }); 


    btnGPSEndPoint.setOnClickListener(new View.OnClickListener() 
    { 
     @Override 
     public void onClick(View v) { 
      startActivityForResult((new Intent(getApplicationContext(), Location.class)),1); 
      EndLatLong = getLocation; 

     } 
    }); 
@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 

    if (requestCode == 1) { 
     if(resultCode == RESULT_OK){ 
      LatLng result= data.getParcelableExtra("sendLocation"); 
      getLocation = result; 
     } 
     if (resultCode == RESULT_CANCELED) { 
      //Write your code if there's no result 
     } 

    } 
} 

場所アクティビティ:

FloatingActionButton SaveLocation = (FloatingActionButton) findViewById(R.id.location); 
    SaveLocation.setOnClickListener(new View.OnClickListener() { 
     @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) 
     @Override 
     public void onClick(View view) { 

      if (MarkerPosition == null) { 
       Snackbar.make(view, "Please click on location first", Snackbar.LENGTH_LONG) 
         .setAction("Action", null).show(); 
      } 
      else { 

       AlertDialog.Builder builder = new AlertDialog.Builder(Location.this); 
       builder.setCancelable(true); 
       builder.setTitle("Location"); 
       builder.setMessage("Latitude : " + MarkerPosition.latitude + "\n" + "Longitude : " + MarkerPosition.longitude); 
       builder.setPositiveButton("Confirm", 
         new DialogInterface.OnClickListener() { 
          @Override 
          public void onClick(DialogInterface dialog, int which) { 
           Intent returnIntent = new Intent(); 
           returnIntent.putExtra("sendLocation",MarkerPosition); 
           setResult(Activity.RESULT_OK,returnIntent); 
           finish(); 
          } 
         }); 
       builder.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() { 
        @Override 
        public void onClick(DialogInterface dialog, int which) { 
        } 
       }); 

       AlertDialog dialog = builder.create(); 
       dialog.show(); 
      } 
     } 
    }); 

答えて

0

最後に、解決済み

さまざまなリクエストコードでロケーションアクティビティを呼び出し、ifステートメントで結果をキャッチします。

しかし、この方法

ホームアクティビティとしてアクティビティを使用する方法を探して:

 btnGPSStartPoint.setOnClickListener(new View.OnClickListener() 
    { 
     @Override 
     public void onClick(View v) { 
      startActivityForResult((new Intent(getApplicationContext(), Location.class)),1); 
     } 
    }); 


    btnGPSEndPoint.setOnClickListener(new View.OnClickListener() 
    { 
     @Override 
     public void onClick(View v) { 
      startActivityForResult((new Intent(getApplicationContext(), Location.class)),2); 

     } 
    }); 
@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 

    if (requestCode == 1) { 
     if(resultCode == RESULT_OK){ 
      LatLng result= data.getParcelableExtra("sendLocation"); 
      StartLatLong = result; 
     } 
     if (resultCode == RESULT_CANCELED) { 
      //Write your code if there's no result 
     } 

    } 

    else if (requestCode==2){ 
      if(resultCode == RESULT_OK){ 
       LatLng result= data.getParcelableExtra("sendLocation"); 
       EndLatLong = result; 
      } 
      if (resultCode == RESULT_CANCELED) { 
       //Write your code if there's no result 
      } 
     } 

    } 
関連する問題