2014-02-21 2 views
0

몇 개의 버튼이있는 MainActivity가 있습니다. 사용자가 선택한 버튼을 누르면 누른 버튼의 문자열이 큰 글꼴로 표시된 두 번째 활동으로 전달됩니다. 나는이 버튼을 첫 번째 버튼으로 처리했지만 모두 사용하는 방법을 모르기 때문에 다른 버튼을 누르면 다른 문자열이 두 번째 활동에 의해 수신됩니다. 나는 스위치 나 ifs를 사용할 수 있다고 생각하지만 버튼이 눌려진 두 번째 활동을 인식하는 방법을 모른다. 두 번째 활동 코드는 다음과 같습니다.사용자 선택에 따라 다른 문자열을 활동으로 전달하십시오.

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_duza_karta); 
    TextView displayZero = (TextView) findViewById(R.id.bigNumber); 
    displayZero.setText(getIntent().getExtras().getString("zero")); 
} 

답변

1

나는 이런 식으로 찾고 있습니다. 이해가 안되면 뭔가 물어보십시오.

public class ActivityA extends Activity implements View.OnClickListener { 

    public static final String TEXT_KEY = "buttontext"; 
    private Button buttonA, buttonB, buttonC; 

    @Override 
    protected void onCreate(Bundes savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.yourlayoutA); 

     buttonA = (Button) findViewById(R.id.buttonA); 
     buttonB = (Button) findViewById(R.id.buttonB); 
     buttonC = (Button) findViewById(R.id.buttonC); 

     buttonA.setOnClickListener(this); 
     buttonB.setOnClickListener(this); 
     buttonC.setOnClickListener(this); 
    } 

    public void onClick(View v) { 
     String toParse = new String(); 

     switch(v.getId()) { 
      case R.id.buttonA: 
       toParse = "button A pressed"; 
        break; 
      case R.id.buttonB: 
       toParse = "button B pressed"; 
        break; 
      case R.id.buttonC: 
       toParse = "button C pressed"; 
        break; 
      default: 
        break; 
     } 
     Intent intent = new Intent(this, ActivityB.class); 
     intent.putExtra(TEXT_KEY, toParse); 
     startActivity(intent) 
    } 
} 

public class ActivityB extends Activity { 

    @Override 
    protected void onCreate(Bunde savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.yourlayout2); 

      String toSet = getIntent().getStringExtra(ActivityA.TEXT_KEY, null); 
      if(toSet != null) { 
       ((TextView)findViewById(R.id.yourtextfield)).setText(toSet); 
      } 
    } 
} 
+0

신속하고 정확한 응답을위한 Thaks. 나는 당신의 코드를 살펴 보았고 내가 필요한 해결책처럼 보였다. 그러나 난 내 응용 프로그램과 함께이 코드를 사용할 수 있는지 궁금해하거나 내 코드를 재작해야합니까 : 나는 activity_main.xml 파일에 내 버튼을 선언하고 해당 버튼에 onClick 메서드를 할당했습니다. 이 선언을 제거해야합니까, 아니면 mainActivity 클래스의 private Button 이름을 XML 선언과 동일한 이름으로 delcare하면됩니까? – Lenny

+0

물론 XML 파일과 일치하도록 내 코드에 사용 된 레이아웃 이름을 변경해야합니다. 자바 코드의 모든 버튼에 대한 리스너를 선언하는 대신 XML 파일의 모든 버튼에 _android : onClick = "onClick"_을 넣으면됩니다. – Endzeit

+0

감사합니다 - 방금 귀하의 코드를 시도하고 그것은 매력처럼 작동합니다! – Lenny

관련 문제