2

クラスを介してデータ/変数を渡す方法を知りたいですか?

Class.java

public class AddItem extends Activity{

    @Override
    protected void onCreate(Bundle savedInstanceState) {
         mlocManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
         mlocListener = new CurrentLocation();
         mlocManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, mlocListener);
    }   
}

public void sendDataDetail(View v){
    // This is where my HTTPPOST goes, need the location here
}

public class CurrentLocation implements LocationListener {
    @Override
    public void onLocationChanged(Location loc) {
        // TODO Auto-generated method stub
        loc.getLatitude();
        loc.getLongitude();
        String Text = "My Current Location is: " + "Lat = " + loc.getLatitude() + "Long = " + loc.getLongitude();
        Toast.makeText(getApplicationContext(),Text,Toast.LENGTH_SHORT).show();
    }
}

SO 基本的に、onCreate に CurrentLocation() があり、次に HTTPPOST スクリプトがありsendDataDetailます。そして、場所を取得するクラスがあります。

その場所を取得して に送信するにはどうすればよいsendDataDetailですか? どのような方法をとればよいですか?

私はまだアンドロイドを学んでいることに注意してください。

前もって感謝します!

4

3 に答える 3

1

Android では、sharedpreferencesを使用してクラス間で情報を渡します。

これは、それがどのように機能するかを説明するために私が知っている最も単純な例です。http://android-er.blogspot.com/2011/01/example-of-using-sharedpreferencesedito.html

于 2012-05-19T00:03:58.323 に答える
0

1 つの方法は、Application クラスを拡張してデータを含むインスタンスを取得し、それを 1 つのクラスに入力して別のクラスで使用することです。StackOverflow でこの質問を参照してください。

基本的には、Application オブジェクトを拡張してフィールド (この場合は場所) を追加し、ある場所で設定して別の場所で取得することです。私が言及したリンクからのサンプルコードは次のとおりです。

class MyApp extends Application {

  private String myState;

  public String getState(){
    return myState;
  }
  public void setState(String s){
    myState = s;
  }
}

class Blah extends Activity {

  @Override
  public void onCreate(Bundle b){
    ...
    MyApp appState = ((MyApp)getApplicationContext());
    String state = appState.getState();
    ...
  }
}

他の方法もありますが、この解決策はかなり良いです!

于 2012-05-19T00:04:03.713 に答える
0

ユースケースによっては、両方のクラスが参照する静的変数をどこかに置くことができます。それは最も簡単で、衒学者に震えを与えますが、これは常に良いことです. もちろん、彼らが正しい場合を除いて。

于 2012-05-19T00:21:29.783 に答える