2012-12-14 2 views
1

나는 안드로이드 프로그래밍에 익숙하지 만, 온라인에서 찾을 수없는 작은 것이있다. 내 문제는 다른 메서드에서 onCreate 메서드의 변수를 사용하고 싶습니다. 나는 이것이 어딘가에 있지만 어쨌든 내가 찾은 것이 무엇이든간에 나는 soultion을 찾을 수 없다는 것을 확신한다. 어쩌면 나는이 모든 말을 잘못 말하고있다 .... 대답이 올바른지 IF 문을 수행하기 위해 onCreate에서 double을 다시 사용하려고합니다. 응용 프로그램은 다음 onCreate에서 변수 사용하기

내 코드입니다 .. 순간에 충돌 :

public class Addition extends Activity implements OnClickListener{ 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_addition); 

    View results = findViewById(R.id.check_button1); 


//set event listener 
    results.setOnClickListener(this); 


     double myRanNumber1; { 

     // variable we will use to store a random number 
     myRanNumber1 = Math.random(); 
     //myRanNumber generated between 0.000000... & 9.9999... 
     myRanNumber1 = myRanNumber1 *10; 
     // myRanNumber between 0.00.. and 9.999.. 
     myRanNumber1 = (int) myRanNumber1;// myRanNumber between 0 and 9 (fraction chopped off) 
     double myRanNumber=(myRanNumber1); 
     DecimalFormat df = new DecimalFormat("####"); 
     String number = df.format(myRanNumber); 
     String printnumber = number; 
     TextView random = (TextView) findViewById(R.id.TextViewRand); 
     random.setText(printnumber); 
     } 

     double myRanNumber2; 
     { 
     // variable we will use to store a random number 
     myRanNumber2 = Math.random(); 
     //myRanNumber generated between 0.000000... & 9.9999... 
     myRanNumber2 = myRanNumber2 *10; 
     // myRanNumber between 0.00.. and 9.999.. 
     myRanNumber2 = (int) myRanNumber2;// myRanNumber between 0 and 9 (fraction chopped off) 
     double myRanNumber=(myRanNumber2); 
     DecimalFormat df = new DecimalFormat("####"); 
     String number = df.format(myRanNumber); 
     String printnumber = number; 
     TextView random = (TextView) findViewById(R.id.TextViewRand1); 
     random.setText(printnumber); 
     } 

     double additionRes1 = addition1(myRanNumber1, myRanNumber2); 
     Intent theIntent = new Intent(this, Results.class); 


     Bundle b = new Bundle(); 
     b.putDouble("key", additionRes1); 
     theIntent.putExtras(b); 
     startActivity(theIntent); 

} 

private double addition1 (double myRanNumber1, double myRanNumber2) 

{ 

    return (double) (myRanNumber1 + myRanNumber2); 
} 

도움이 매우 appriciated 수 :

변수의
+4

으로 키와 getValue으로 값을 저장할 수 있습니다 ....... 키 코드를 사용합니다. 그런데 "인스턴스 변수"를 찾고 있습니다. – dmon

+0

클래스 변수로 선언하고 logcat 크래시를 게시하십시오. –

+0

아무 것도 맞지 않습니다.이 코드는 myRanNumber1을 double로 선언했지만 나중에 int를 할당하면 addition1 메서드는 이미 double을 반환하지만 double을 다시 캐스팅하여 –

답변

3

기본 범위 지정 당신이 원하는 경우에 당신이 classwide 변수로 선언해야합니다 다른 기능에서 조작 할 수 있습니다.

public class MainActivity extends Activity { 

    //Declare a class variable to use in this class 
    public Double myNumber1; 
    public Double myNumber2; 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      myNumber1 = 250; 
      myNumber2 = 10; 

      //mySum is only available for use within this method 
      Double mySum = addition1 (myNumber1, myNumber2); 

    } 
    private double addition1 (double myRanNumber1, double myRanNumber2) { 
     return myRanNumber1 + myRanNumber2; 
    } 
} 
0

은 흠 내가 먼저 일반적으로 자바 프로그래밍에 읽어 제안 당신은 키

Intent i = new Intent(); 
    i.putExtra("key", doubleValue); 

    i.getDoubleExtra("key", defValue); 
관련 문제