如何获取变量val1和val2的值?

时间:2018-07-08 02:23:37

标签: java android

这是我的android应用程序的第二个活动页面。

未获取变量val1和val2。

获取意图中也出现了问题。

我的主要目的是在按钮单击时显示值,并在第三页上显示答案

package com.example.bhask.myapplication;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class Main2Activity extends AppCompatActivity {

    Button btn1;
    static int ans;

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

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

        Intent i=getIntent();
        final int val1 = i.getIntExtra("val1",0);
        /*val1 and val2 are not getting fetched.*/

        final int val2 = i.getIntExtra("val2",0);

        btn1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                int ans=val1+val2;
                Intent i1=new Intent(Main2Activity.this,Main3Activity.class);
                i1.putExtra("ans","Add is "+ans);

                startActivity(i1);

               finish();
            }
        });
    }
 }

1 个答案:

答案 0 :(得分:0)

您正在尝试获取如下所示的值:

final int val1 = i.getIntExtra("val1",0);
final int val2 = i.getIntExtra("val2",0);

不起作用的最可能原因是,没有任何事情(以前)进行“放置”以将值保存在意图的“ extras”属性中。因此,getIntExtra调用返回的是您提供的默认值。

要将值添加到意图中,请在适当的位置调用i.putExtra(name, val1)。但是:

  • 尚不清楚val1val2的真实值应该来自哪里,并且

  • 文档说:

      

    名称必须包含包前缀,例如,应用com.android.contacts将使用“ com.android.contacts.ShowAll”之类的名称。

    但是您的名字(字符串文字“ val1”和“ val2”)没有包前缀!