根据用户选择将不同的字符串传递给活动

时间:2014-02-21 19:36:19

标签: android android-activity

我有几个按钮的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 个答案:

答案 0 :(得分: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);
          }
    }
}