多个按钮,在一个活动中显示多个字符串

时间:2017-06-12 16:13:56

标签: java android

我的Main.xml布局有2个按钮。

我知道如何使用按钮从一个活动转到另一个活动,但我不知道如何让多个按钮进行一个活动并显示多个字符串。

实施例

main.xml中

Button1 Button2

Main2.xml

如果由Button1启动,则显示string1。

如果按钮2启动,则显示string2

我该怎么做?

主要活动包含以下代码:

Button bas1b = (Button) findViewById(R.id.bas1b);
     Button bas2b = (Button) findViewById(R.id.bas2b);

        bas1b.setOnClickListener(new View.OnClickListener(){

            @Override
            public void onClick(View v) {

                String string1 = getResources().getString(R.string.welcome);

                Intent intent1 = new Intent(Main.this, Main2.class);
                intent1.putExtra("s1",string1);
                startActivity(intent1);
            }
        });

        bas2b.setOnClickListener(new View.OnClickListener(){

            @Override
            public void onClick(View v) {

                String string2 = getResources().getString(R.string.Hello);

                Intent intent2 = new Intent(Main.this, Main2.class);
                intent2.putExtra("s2",string2);
                startActivity(intent2);
            }
        });

Main2 Activity包含以下代码:

        String s1;
        String s2;

        TextView bas1 = (TextView)findViewById(R.id.bas);

        Intent intent1=new Intent(getIntent());
        s1=intent1.getStringExtra("s1");
        bas1.setText(s1);

        Intent intent2=new Intent(getIntent());
        s2=intent2.getStringExtra("s2");
        bas1.setText(s2);

如果我只是在Main2活动中编写此代码:

        Intent intent1=new Intent(getIntent());
        s1=intent1.getStringExtra("s1");
        bas1.setText(s1);

第一个按钮(bas1b)将起作用并显示string1。

但如果我写这段代码:

Intent intent1=new Intent(getIntent());
        s1=intent1.getStringExtra("s1");
        bas1.setText(s1);

        Intent intent2=new Intent(getIntent());
        s2=intent2.getStringExtra("s2");
        bas1.setText(s2);

只需第二个按钮(bas2b)即可工作并显示string2。

我的要求是:

如果我点击bas1b,在Main2.xml中显示给我string1。

如果我点击bas2b,在Main2.xml中显示给我string2。

2 个答案:

答案 0 :(得分:0)

In every onCLickListeners of your buttons, you will call your activity B, to pass the text to the next activity you will do this:

Intent intent = new Intent(getContext(), YOUR_ACTIVITY_B.class);
intent.putString("YOUR_TAG", "The text you want to pass to activity B"); 
startActivity(intent);

Then, in your Activiy B, you receive the text , like this:

Intent i = getIntent();
Bundle extras = i.getExtras();

text = extras.getString("YOUR_TAG");

答案 1 :(得分:0)

主要活动应该是

Button bas1b = (Button) findViewById(R.id.bas1b);
     Button bas2b = (Button) findViewById(R.id.bas2b);

        bas1b.setOnClickListener(new View.OnClickListener(){

            @Override
            public void onClick(View v) {

                String string1 = getResources().getString(R.string.welcome);

                Intent intent1 = new Intent(Main.this, Main2.class);
                intent1.putExtra("s1",string1);
                startActivity(intent1);
            }
        });

        bas2b.setOnClickListener(new View.OnClickListener(){

            @Override
            public void onClick(View v) {

                String string2 = getResources().getString(R.string.Hello);

                Intent intent2 = new Intent(Main.this, Main2.class);
                intent2.putExtra("s1",string2);
                startActivity(intent2);
            }
        });

第二个活动应该是

Intent intent1=new Intent(getIntent());
s1=intent1.getStringExtra("s1");
bas1.setText(s1);

无论这两项活动如何,您发送的额外信息应具有相同的密钥(s1)