首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将EditText值传递给onCreate Android?

如何将EditText值传递给onCreate Android?
EN

Stack Overflow用户
提问于 2013-12-05 14:05:25
回答 3查看 1.5K关注 0票数 1

我正试图在我的EditText中传递一个onCreate值。(我不认为这是可能的,但我不知道该怎么办!)

代码语言:javascript
复制
  protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_google_maps);
    }

    public void userClick(View v) {

      EditText mEditText1 = (EditText)findViewById(R.id.number1i); 
            String val1 = mEditText1.getText().toString();
            EditText mEditText2 = (EditText)findViewById(R.id.number2i); 
            String val2 = mEditText2.getText().toString();

            double dVal1 = Double.parseDouble(val1); 
            double dVal2 = Double.parseDouble(val2);

            marker(dVal1,dVal2);

}

marker(double Lat, double Long) {

         googleMap.addMarker(new MarkerOptions()
        .position(new LatLng(Lat,Long)));
}

运行该应用程序时,Google中没有标记(用户通过EditText设置纬度和经度值)。

我无法在EditText中添加onCreate值,因为它们将变为空值。

如何在onCreate方法中传递用户集值,即

代码语言:javascript
复制
protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_google_maps);
             googleMap.addMarker(new MarkerOptions()
            .position(new LatLng(Lat,Long)));
        }

这显然给了我一个错误,因为Lat和Long是无法识别的。

我通过onClick从EditText按钮调用下面的方法,然后调用前面的方法,其中我想要放置EditText值

代码语言:javascript
复制
    public class UserInput extends FragmentActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.input);

}

    public void Input(View v) {
         Intent i = new Intent(v.getContext(), UserInput.class);
            startActivity(i);
    }
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-12-05 14:23:12

如果您想将数据从一个活动传递到另一个活动,只需将其添加到意图中:

代码语言:javascript
复制
    Intent intent = new Intent(this, OtherActivity.class);
    EditText editText = getViewById(R.id.edit_message);
    String message = editText.getText().toString();
    intent.putExtra(OtherActivity.KEY, message);
    startActivity(intent);

并在OtherActivity中访问这些数据:

代码语言:javascript
复制
    public static final KEY = "my_data_key";

    protected void onCreate(Bundle savedInstanceState) {
        Intent intent = getIntent();
        if(intent != null) {
            String value = intent.getStringExtra(KEY);
        }
    }
票数 2
EN

Stack Overflow用户

发布于 2013-12-05 14:33:54

如果您在一个活动中有EditText和Map,您应该这样做。

代码语言:javascript
复制
private GoogleMap mMap;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_google_maps);
    setUpMapIfNeeded();
}

@Override
protected void onResume() {
    super.onResume();
    setUpMapIfNeeded();
}

private void setUpMapIfNeeded() {
    // Do a null check to confirm that we have not already instantiated the
    // map.
    if (mMap == null) {
        // Try to obtain the map from the SupportMapFragment.
        mMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap();
        // Check if we were successful in obtaining the map.
    }
}

public void userClick(View v) {

  EditText mEditText1 = (EditText)findViewById(R.id.number1i); 
        String val1 = mEditText1.getText().toString();
        EditText mEditText2 = (EditText)findViewById(R.id.number2i); 
        String val2 = mEditText2.getText().toString();

        double dVal1 = Double.parseDouble(val1); 
        double dVal2 = Double.parseDouble(val2);

        marker(dVal1,dVal2);

}

marker(double Lat, double Long) {
        LatLng curLocation = new LatLng(Lat, Long);
        mMap.addMarker(new MarkerOptions().position(curLocation).title("Marker"));
        CameraUpdate cameraUpdate = CameraUpdateFactory.newLatLngZoom(curLocation, 13);
        mMap.animateCamera(cameraUpdate);
}
票数 1
EN

Stack Overflow用户

发布于 2013-12-05 14:25:27

如果从另一个活动传递编辑文本数据,则需要获取该活动中的数据,并按如下方式设置有效负载:

代码语言:javascript
复制
 String lat = myLatitudeEditText.getText().toString();
 String long = myLongitudeEditText.getText().toString();
 Intent myIntent = new Intent(getApplicationContext(), secondActivity.class);
 myIntent.putExtra("lat",lat);
 myIntent.putExtra("long",long);
 startActivity(myIntent);

现在在第二个活动的onCreate中:

代码语言:javascript
复制
 String latitude = getIntent().getExtras().getString("lat");
 String longitude = getIntent().getExtras().getString("long");

现在你已经收到了你传入的短信。希望这解决了您的查询。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20402083

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档