Android 如何通过单击按钮发送额外数据并使其一个接一个

Android 如何通过单击按钮发送额外数据并使其一个接一个,android,android-intent,Android,Android Intent,例如,当我单击另一个活动上的文本视图1时,必须更改;当我单击但是2时,当我单击3个按钮(一个接一个)时,代码中的文本视图2必须更改等单击第一个后,所有三个textview都将填充第一个textview中应包含的信息。 这是我的第一个活动: buttonvis1 = (Button) findViewById(R.id.button1); buttonvis2 = (Button) findViewById(R.id.button2); buttonvis2.setVisi

例如,当我单击另一个活动上的
文本视图1
时,必须更改;当我单击
但是2
时,当我单击3个按钮(一个接一个)时,代码中的
文本视图2
必须更改等单击第一个后,所有三个
textview
都将填充第一个
textview中应包含的信息。
这是我的第一个活动:

    buttonvis1 = (Button) findViewById(R.id.button1);
    buttonvis2 = (Button) findViewById(R.id.button2);
    buttonvis2.setVisibility(Button.GONE);
    buttonvis1.setOnClickListener(new OnClickListener(){
        public void onClick(View v){
            Intent intent = new Intent(MainActivity.this,Ostanovki.class);
            intent.putExtra("in1",input_in.getText().toString());
            intent.putExtra("out1", input_out.getText().toString());
            buttonvis2.setVisibility(Button.VISIBLE);
            //startActivity(intent);

        }
    });
    buttonvis3 = (Button) findViewById(R.id.button3);
    buttonvis3.setVisibility(Button.GONE);
    buttonvis2.setOnClickListener(new OnClickListener(){
        public void onClick(View v){
            Intent intent = new Intent(MainActivity.this,Ostanovki.class);
            intent.putExtra("in2",input_in.getText().toString());
            intent.putExtra("out2", input_out.getText().toString());
            buttonvis3.setVisibility(Button.VISIBLE);
            startActivity(intent);
        }
    });
    buttonvis3.setOnClickListener(new OnClickListener(){
        public void onClick(View v){
            Intent intent = new Intent(MainActivity.this,Ostanovki.class);
            intent.putExtra("in3",input_in.getText().toString());
            intent.putExtra("out3", input_out.getText().toString());
            //startActivity(intent);
        }
    });
这是第二个:

    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.ostanovki);
    txtOst1 = (TextView) findViewById(R.id.txtost1);
    txtOst2 = (TextView) findViewById(R.id.txtost2);
    txtOst3 = (TextView) findViewById(R.id.txtost3);


    input1 = getIntent().getExtras().getString("in1");
    output1 = getIntent().getExtras().getString("out1");
    txtOst1.setText("В маршрутку зашло " +input1 +"а вышло " +output1);


    input2 = getIntent().getExtras().getString("in2");      
    output2 = getIntent().getExtras().getString("out2");
    txtOst2.setText("В маршрутку зашло " +input2 +"а вышло " +output2);


    input3 = getIntent().getExtras().getString("in3");      
    output3 = getIntent().getExtras().getString("out3");
    txtOst3.setText("В маршрутку зашло " +input3 +"а вышло " +output3);

我是个新手,所以如果我写了傻事,不要生气。谢谢;)

对不起,这是我的错误,现在使用bundle对象按如下方式接收:

在activity2的onCreate()中,您可以通过检索捆绑包(包含调用活动发送的所有消息)并调用getString来获取字符串消息:

Bundle bundle = getIntent().getExtras();
String message = bundle.getString("message");

阅读您的评论后,我认为使用SharedReferences将使您的任务更加简单:

保存您的数据

SharedPreferences pref = getSharedPreferences("any_prefname", MODE_PRIVATE);
Editor editor = pref.edit();
editor.putString("in1",input_in.getText().toString() );
editor.putString("out1",input_out.getText().toString() );
editor.commit();
然后在第二个活动中检索数据,如下所示:,

SharedPreferences pref = getSharedPreferences("any_prefname", MODE_PRIVATE);
    input1 = pref.getString("in1", "defaultString");
    output1 = pref.getString("out1", "defaultString");
    txtOst1.setText("В маршрутку зашло " +input1 +"а вышло " +output1);

如果我了解您的问题,在单击所有按钮后,您有3个按钮需要在另一个活动中查看值,因此您必须将这三个值全部放入intent中。使用以下代码:

Intent intent = new Intent(MainActivity.this,Ostanovki.class);

buttonvis1 = (Button) findViewById(R.id.button1);
buttonvis2 = (Button) findViewById(R.id.button2);
buttonvis2.setVisibility(Button.GONE);
buttonvis1.setOnClickListener(new OnClickListener(){
    public void onClick(View v){

        intent.putExtra("in1",input_in.getText().toString());
        intent.putExtra("out1", input_out.getText().toString());
        buttonvis2.setVisibility(Button.VISIBLE);
        //startActivity(intent);

    }
});
buttonvis3 = (Button) findViewById(R.id.button3);
buttonvis3.setVisibility(Button.GONE);
buttonvis2.setOnClickListener(new OnClickListener(){
    public void onClick(View v){
        intent.putExtra("in2",input_in.getText().toString());
        intent.putExtra("out2", input_out.getText().toString());
        buttonvis3.setVisibility(Button.VISIBLE);
        startActivity(intent);
    }
});
buttonvis3.setOnClickListener(new OnClickListener(){
    public void onClick(View v){
        intent.putExtra("in3",input_in.getText().toString());
        intent.putExtra("out3", input_out.getText().toString());
        //startActivity(intent);
    }
});
   Bundle bundle = getIntent().getExtras();
   String in1= bundle.getString("in1");
   String out1= bundle.getString("out1");

   String in2= bundle.getString("in2");
   String out2= bundle.getString("out2");

   String in3= bundle.getString("in3");
   String out3= bundle.getString("out3");
在第二个活动中,您必须获取数据,因此请使用以下代码:

Intent intent = new Intent(MainActivity.this,Ostanovki.class);

buttonvis1 = (Button) findViewById(R.id.button1);
buttonvis2 = (Button) findViewById(R.id.button2);
buttonvis2.setVisibility(Button.GONE);
buttonvis1.setOnClickListener(new OnClickListener(){
    public void onClick(View v){

        intent.putExtra("in1",input_in.getText().toString());
        intent.putExtra("out1", input_out.getText().toString());
        buttonvis2.setVisibility(Button.VISIBLE);
        //startActivity(intent);

    }
});
buttonvis3 = (Button) findViewById(R.id.button3);
buttonvis3.setVisibility(Button.GONE);
buttonvis2.setOnClickListener(new OnClickListener(){
    public void onClick(View v){
        intent.putExtra("in2",input_in.getText().toString());
        intent.putExtra("out2", input_out.getText().toString());
        buttonvis3.setVisibility(Button.VISIBLE);
        startActivity(intent);
    }
});
buttonvis3.setOnClickListener(new OnClickListener(){
    public void onClick(View v){
        intent.putExtra("in3",input_in.getText().toString());
        intent.putExtra("out3", input_out.getText().toString());
        //startActivity(intent);
    }
});
   Bundle bundle = getIntent().getExtras();
   String in1= bundle.getString("in1");
   String out1= bundle.getString("out1");

   String in2= bundle.getString("in2");
   String out2= bundle.getString("out2");

   String in3= bundle.getString("in3");
   String out3= bundle.getString("out3");

别忘了检查null当我收到这样的消息时,会出现一个错误:类型Bundlesorry的getExtras()方法未定义,这是我的错误。现在看看我的答案@user3024751为什么你评论
startActivity(intent)在按钮1和按钮3中?点击后如何进入下一个活动?我不想点击第一个按钮后进入下一个活动,我想在第二个活动中保存所有信息,只有在单击第三个按钮后,我才想在单击所有按钮后显示该活动的信息。我对它们进行了注释,以检查我的程序是否正常工作。我真的不明白你想做什么。单击“下一个活动”中显示的所有按钮文本后,是否需要?有什么问题吗?我有3个按钮。单击第一个后,我希望在单击后必须显示的文本仅保存在textview1中,不显示,但我不想切换到活动,我只希望将文本写入其中,因此,我可以在单击所有按钮后观看。单击最后一个按钮后,我想转到该活动并观看包含信息的完整列表。我认为在这种情况下,您需要使用SharedReference。它更简单。看看我的答案!当我试图检索我的数据时,出现了一个错误:类型SharedReferences中的方法getString(String,String)不适用于参数(String),很高兴它有帮助!是的,我省略了默认值。谢谢你指出这一点。