【问题标题】:How to pass value of one TextView to another TextView in different Activity [duplicate]如何将一个 TextView 的值传递给不同 Activity 中的另一个 TextView [重复]
【发布时间】:2012-04-18 21:40:47
【问题描述】:

可能重复:
How to pass object from one activity to another in Android

我有两个活动Activity 1Activity 2。对于这两个活动,我有两个 XML 布局 1.xml 和 2.xml。在 1.xml 我有一个Button,在 2.xml 我有TextView。所以我想要的是点击Button,这是我想打开第二个活动的第一个活动,还想在活动2中的Textview上显示Button中显示的文本。我的意思是假设Button中的文本是“ADD”,那么这个文本将显示在TextView中。

注意:Button 在 Activity1 上,TextView 在 Activity2 上

【问题讨论】:

    标签: android


    【解决方案1】:

    使用 Intent 试试这个:

    在按钮点击的活动 1 中:

    Intent intent = new Intent(Activityone.class, Activitytwo.class);   
    intent.putExtra("value2","world");  
    startActivity(intent); 
    

    在活动 2 中:

    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        String value1 = super.getIntent().getExtras().getString("value1");  
        myTextView.setText("value1: " + value1 + ");  
    }
    

    【讨论】:

      【解决方案2】:

      在您的按钮中开始新活动时,单击下面的代码

      Intent intent = new Intent();
      intent.putExtra("TextValue", text1.getText().toString());
      intent.setClass(Activity1.this, Activity2.class);
      startActivity(intent);
      

      onCreate() 的 Activity2 中

      String s = getIntent().getStringExtra("TextValue");
      

      【讨论】:

        【解决方案3】:

        第一个活动 -

        Button btn = (Button)findViewById(R.id.button1);
        b.setOnClickListener(new View.OnClickListener() 
        {
                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                                String passingdata = textview.getText().toString();
                                Intent i = new Intent(Activity1.this, Activity2.class);
                                Bundle b = new Bundle();
                                b.putString("Key", passingdata);
                                i.putExtras(b);
                                startActivity(i);
                }
            });
        

        第二个活动-

        @Override
        protected void onCreate(Bundle savedInstanceState) 
        {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.second);
            Bundle b = getIntent().getExtras();
            String receivingdata = b.getStringExtra("Key");
            TextView tv = (TextView)findViewById(R.id.secondtext);
            tv.setText(receivingdata);
        }
        

        【讨论】:

          【解决方案4】:

          INTENT 使用Intent 传递数据,putExtra() 将允许您放置数据

          活动A

          Intent myIntent = new Intent(ActivityA.this, Activityb.class);
          myIntent.putExtra("key", "value");
          startActivity(myIntent); 
          

          活动B

          Intent myIntent = getIntent(); // this is just for example purpose
          myIntent.getExtra("key");
          

          【讨论】:

          • 如果我想将日期作为值而不是字符串传递,那么该怎么做
          • 在 dateformatter 的帮助下使用日期作为字符串。
          【解决方案5】:

          您需要为您的意图添加额外的参数。观看this article

          【讨论】:

            猜你喜欢
            • 2016-08-09
            • 1970-01-01
            • 1970-01-01
            • 2018-11-15
            • 2023-03-28
            • 2019-07-25
            • 2020-12-18
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多