2013-05-21 6 views
-4

Итак, у меня есть этот класс, где я нажимаю кнопку, а в и я получаю int maxpluseen, который я хочу передать ClassB.Передайте целое число между классами в Java

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

И В ClassB

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 (так что мой ИНТ не передается от classA к classB Что я Я делаю неправильно здесь?

+0

http://stackoverflow.com/questions/15859445/how-do-you-pass-a-string-from-one-activity-to-another/15859488#15859488 – Raghunandan

+0

dup here: http: // stackoverflow. com/questions/5467246/transferring-int-variable-between-activities-android/5467268 # 5467268 – TronicZomB

+0

Я не понимаю вашу логику. Вы передаете целое число вашему методу доступа, и оно просто возвращает тот же int для вас. Каким образом вы ожидаете «измененного» значения? – Blackbelt

ответ

0

в классе А:

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

в классе В:

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

......

0

здесь вы проходите ClassA.Access() значение 0, таким образом, возвращает значение 0.

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

Во-первых все, вы должны упомянуть, что ваши классы не являются нормальными классами, а действиями. Во-вторых, вы должны действительно использовать все-английские имена переменных (maxplusone).

Вы можете добавить данные в Intent, можно использовать, чтобы начать новую активность с, что вы можете прочитать больше о

Here in a different question или here in the Intent developer description

0

Является ли classA ваш главный?

Если да, создайте объект classB. Напишите функцию для установки значения int, чтобы вы могли сделать что-то вроде classBObject.setInt(value). Затем в методе foto1onClick() вызовите эту функцию.

Смежные вопросы