【问题标题】:Android Studio defaultValue/ passing Variables [duplicate]Android Studio defaultValue/传递变量[重复]
【发布时间】:2019-02-13 03:11:44
【问题描述】:

我是 Android Studio 和 java 新手,希望您能帮助我。 我想将一个双变量从一个活动传递到下一个活动。 但我不确定需要什么,所以在接收活动中输入 defaultValue。

这是活动一的代码:

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

    Button weiter = (Button)findViewById(R.id.weiter);

    weiter.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            EditText EingabeBreite = (EditText)findViewById(R.id.breite);

            double breite = Double.parseDouble(EingabeBreite.getText().toString());

            Intent rüber = new Intent(getApplicationContext(), Main2Activity.class);
            getIntent().putExtra("next", breite);
            startActivity(rüber);

这是第二个活动的代码:

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

    TextView ergebnis = (TextView)findViewById(R.id.textView2);

    Bundle extras = getIntent().getExtras();
    double breite = extras.getDouble("next");


    ergebnis.setText(Double.toString(breite));

【问题讨论】:

  • 运行应用时会发生什么?它有任何错误吗?如果是这样,它们是什么?如果不是,那么该行为与您想要的有何不同?

标签: java android android-studio default-value


【解决方案1】:

将代码添加到第二个活动:

 double breite=getIntent().getDoubleExtra("next",0d);

很简单

【讨论】:

    【解决方案2】:
                Intent weiter  = new Intent(MainActivity.this,Main2Activity.class);
                startActivity(weiter);
    
                EditText EingabeBreite = (EditText)findViewById(R.id.breite);
    
                double breite = Double.parseDouble(EingabeBreite.getText().toString());
    
                Intent rüber = new Intent(getApplicationContext(),MainActivity.class);
                getIntent().putExtra("next","breite");
                startActivity(rüber);
    

    首先,您开始了 2 个意图。那不是你想要的。只有一项活动可以排在最前面,您想做其中一项。两者都不是。

    其次-你不想要getIntent().putExtra()。你想要ruber.putExtra()。您需要将额外的内容放在发送给其他活动的意图上。调用 getIntent 将获得启动当前 Activity 的意图,这不是您要发送给下一个的意图。

    【讨论】:

      【解决方案3】:

      使用此代码:

       Intent mIntent = new Intent(HomeActivity.this, CenterActivity.class);
                  mIntent.putExtra("thevalue ", 0.0d);
                  startActivity(mIntent);
      
       Intent intent = getIntent();
      double d = Double.parseDouble(intent.getExtras().getString("thevalue "));
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-03-13
        • 2013-03-22
        • 2014-01-11
        • 2020-07-14
        • 2013-06-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多