【问题标题】:android: passing variable through classes?android:通过类传递变量?
【发布时间】:2012-05-26 12:44:23
【问题描述】:

我想知道如何通过类传递数据/变量?

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();
    }
}

所以基本上,我在 onCreate 中有 CurrentLocation(),然后在 sendDataDetail 中有一个 HTTPPOST 脚本。然后我有一个获取位置的类。

如何获取该位置并将其发送至sendDataDetail?我应该采取什么方法?

请注意我还在学习android,

提前谢谢你!

【问题讨论】:

    标签: java android parameter-passing


    【解决方案1】:

    在某些用例中,您可以在某处放置一个静态变量供两个类引用。这将是最简单的,它会让学究们不寒而栗,这总是一件好事。好吧,当然,除非他们是对的。

    【讨论】:

      【解决方案2】:

      一种方法是扩展 Application 类并获取包含数据的实例,将其填充到一个类中并在另一个类中使用它。请参阅 StackOverflow 上的 this 问题。

      基本上,您所做的是扩展 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();
          ...
        }
      }
      

      还有其他的办法,不过这个方案还不错!

      【讨论】:

        【解决方案3】:

        在 Android 中,sharedpreferences 用于在类之间传递信息。

        这是我所知道的解释其工作原理的最简单示例。 http://android-er.blogspot.com/2011/01/example-of-using-sharedpreferencesedito.html

        【讨论】:

          猜你喜欢
          • 2018-10-11
          • 2021-07-08
          • 2011-10-19
          • 2014-12-25
          • 2015-06-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多