【问题标题】:Pass integer between classes in Java [duplicate]在Java中的类之间传递整数[重复]
【发布时间】:2024-01-13 02:45:01
【问题描述】:

所以我有这个类,我按下一个按钮,然后我得到了我想要传递给 ClassB 的 int maxpluseen

   private void populateBtn() {
        foto1 = (Button) this.findViewById(R.id.button2);
        foto1.setOnClickListener(new View.OnClickListener() {
            @SuppressLint("SimpleDateFormat")
            @Override
            public void onClick(View v) {
 int maxpluseen = maxIndex + 1;
                Log.d("LOG!", "Uiteindelijk resultaat " + maxpluseen);

                Intent myIntent = new Intent(classA.this, classB.class);
                classA.this.startActivity(myIntent);     

            }


        });
    }

我尝试了以下操作:

public static int Access(int maxpluseen){
  return maxpluseen; 
}

在 B 类中

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.info);

     int maxpluseen = 0;
    int test = classA.Access(maxpluseen);
    Log.d("LOG!", "Test int tussen klassen= " + test);

}

但它返回 0(所以我的 int 没有从 classA 传递到 classB。我在这里做错了什么?

【问题讨论】:

  • 我不明白你的逻辑。您将一个整数传递给您的 Access 方法,它只是返回相同的 int 给您。您期望以哪种方式“修改”值?
  • 未来编程的一个小技巧。尝试用英语编码,还有字符串和消息。所以人们知道你的意思,如果他们需要的话。一旦给变量一个荷兰语名称,我就犯了错误,必须在发布到 SO 之前将它们转换为英文(更多的工作是徒劳的)。
  • 因为 Access 什么都不做,所以千万不要这样尝试。每个intent都可以携带一些信息,所以你可以在intent中放入一个以class B开头的int,比如myIntent.putExtra(key,value);

标签: java android class int parameter-passing


【解决方案1】:

在 A 类中:

Intent myIntent = new Intent(classA.this, classB.class);
myIntent.putExtra("number", maxpluseen)
            classA.this.startActivity(myIntent); 

B 类:

int getal;
getal = getIntent().getExtras().getInt("number");

……

【讨论】:

    【解决方案2】:

    在这里,您向 ClassA.Access() 传递了一个值 0,因此返回一个值 0。

     int maxpluseen = 0;
     int test = classA.Access(maxpluseen);
    

    【讨论】:

      【解决方案3】:

      首先,您应该提到您的课程不是普通课程,而是活动。 其次,你应该真正使用全英文变量名(maxplusone)。

      您可以向 Intent 添加数据,用于启动新的 Activity,您可以阅读更多关于

      Here in a different questionhere in the Intent developer description

      【讨论】:

        【解决方案4】:

        classA 是你的主力吗?

        如果是这样,请创建一个对象classB。编写一个函数来设置int 的值,这样您就可以执行classBObject.setInt(value) 之类的操作。然后,在您的 foto1onClick() 方法中,调用该函数。

        【讨论】:

          最近更新 更多