2017-09-22 13 views
0

이전 활동에서 숫자 피커를 사용하여 하나의 활동에 대한 textview 값을 변경하려고합니다. 어떤 도움을 주시면 감사하겠습니다. 내가 게시하지 않을 수 있습니다 모든 관련 코드를 알려 주시면하시기 바랍니다가 있다면NumberPicker를 사용하여 다른 활동의 TextView 변경하기 [안드로이드]

다음은 activity1에

public class activity_game extends AppCompatActivity { 

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

     final NumberPicker fizzNumberPkr = (NumberPicker)findViewById(fizzNumberPicker); 
     fizzNumberPkr.setValue(3); 
     fizzNumberPkr.setMinValue(1); 
     fizzNumberPkr.setMaxValue(20); 
     fizzNumberPkr.setWrapSelectorWheel(true); 
     final NumberPicker buzzNumberPkr = (NumberPicker)findViewById(buzzNumberPicker); 
     buzzNumberPkr.setValue(5); 
     buzzNumberPkr.setMinValue(1); 
     buzzNumberPkr.setMaxValue(20); 
     buzzNumberPkr.setWrapSelectorWheel(true); 

    } 

    public void toActivityPlay (View view) { 
     Intent toActivityPlay = new Intent(this, activity_play.class); 
     toActivityPlay.putExtra("fizzNumber", fizzNumber); 
     toActivityPlay.putExtra("buzzNumber", buzzNumber); 
     startActivity(toActivityPlay); 
    } 

에서 내 자바의 관련 부분과 activity2에

public class activity_play extends AppCompatActivity { 

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

     TextView fizzNumberText = (TextView)findViewById(R.id.fizzNumber); 
     fizzNumberText.setText(getIntent().getExtras().getString("fizzNumber")); 

     if(getIntent().hasExtra("fizzNumber")) { 
      fizzNumber = getIntent().getIntArrayExtra(); 
     } else { 
      throw new IllegalArgumentException("Error: Fizz number not found"); 
     } 

에서 내 관련 자바의 내 게시물을 수정합니다.

답변

0

두 가지 활동을 알리는 아이디어가 나에게 왔습니다. 첫 번째 Activity에서 setValuePicker()/getValueFromPicker() 메소드를 만들고 다른 활동에서 getValue()를 호출 할 수 있습니다.

public void setValuePicker(Parameter value){ 
    number = value; 
} 

public Parameter getValuePicker(){ 
    return value; 
} 

변수가 글로벌로 설정된 경우 getValue() 메소드 만 구현하면됩니다.

언젠가 조각을 사용하려면 조각에 콜백을 구현해야합니다. FirstActivity

public class MainActivity extends AppCompatActivity { 

    private int number; 
    public static final String FIZZ_TAG = "fizz_numer"; 

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

     final NumberPicker picker = (NumberPicker) findViewById(R.id.numberPicker); 
     picker.setMinValue(0); 
     picker.setMaxValue(10); 
     picker.setValue(5); 
     picker.setWrapSelectorWheel(true); 

     Button button = (Button) findViewById(R.id.button); 
     button.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       number = picker.getValue(); 
       Intent intent = new Intent(getApplicationContext(), Main2Activity.class) 
         .putExtra(FIZZ_TAG,number); 
       startActivity(intent); 
      } 
     }); 
    } 
} 
  • 두 번째 활동이 같을 필요 - 가 :


    편집 :

    이 코드를 사용하면이 같은 것입니다. . . . .

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.activity_main2); 
    
        int s = getIntent().getIntExtra(MainActivity.FIZZ_TAG,0); 
    
        TextView textView = (TextView) findViewById(R.id.text_test); 
        textView.setText(String.format("%s = %d","number ",s)); 
    
    }