【问题标题】:How do I get a String from one class to another?如何从一个类到另一个类获取字符串?
【发布时间】:2017-03-25 22:07:34
【问题描述】:

我正在启动 Android Studio,我查看了教程,但似乎都没有。我有四个字符串,spielernr1、spielernr2、spielernr3 和 koenig,我从 MainActivity 类的 EditTexts 中获得它们。现在我想在我的 seite1 类中使用它们,但我不知道如何将它们导入到 seite1 类中。 MainActivity 类的代码如下:

public class MainActivity extends AppCompatActivity {
String spielernr1, spielernr2, spielernr3, koenig;
EditText spieler1;
EditText spieler2;
EditText spieler3;
EditText kartenkoenig;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    spieler1 = (EditText) findViewById(R.id.editText);
    spieler2 = (EditText) findViewById(R.id.editText2);
    spieler3 = (EditText) findViewById(R.id.editText3);
    kartenkoenig = (EditText) findViewById(R.id.editText4);
    Button startbutton = (Button) findViewById(R.id.button2);
    startbutton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            spielernr1 = spieler1.getText().toString();
            spielernr2 = spieler2.getText().toString();
            spielernr3 = spieler3.getText().toString();
            koenig = kartenkoenig.getText().toString();

            setContentView(R.layout.activity_seite1);


        }
    });

}

这是 seite1 的代码:

public class seite1 extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_seite1);



}

}

【问题讨论】:

    标签: java android string parameter-passing


    【解决方案1】:

    首先您需要了解如何使用 Intent 在不同的活动之间共享数据。

    在第一个活动中-:

    Intent intent = new Intent(ActivityOne.this, ActivityTwo.class);
    i.putExtra("key", "StringToSend");
    startActivity(intent);
    

    在第二个活动中-:

    Intent i=getIntent();
    String s = intent.getExtras().getString("key");
    

    在活动的任何地方使用这个s字符串。

    【讨论】:

      【解决方案2】:

      你可能需要阅读更多关于如何开始新活动的内容,你做错了。

      你应该有这样的东西:

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

      本网站将帮助您了解如何开始一项新活动并向其发送数据。

      Start and Send data

      【讨论】:

      • 您的示例并不是特别有用,因为它没有显示如何将Strings 传递给正在启动的活动。也许您可以对其进行编辑以提供示例?
      • 感谢您的评论,您真的检查了我添加的链接吗?您将了解如何将字符串添加到捆绑包或使用附加功能。
      • 链接无关。除了它可能已死的事实之外,您提供的示例代码只是启动了一个没有任何额外内容的活动,而 OP 将需要知道如何将额外内容(在本例中为 String 额外内容)添加到他们用来启动下一个活动。请不要误解我的意图(不是双关语)——只是想确保 OP 有一个明确的答案:)
      【解决方案3】:

      如果我理解了您的问题,那么您的活动会获取一些信息并想在另一个活动中使用它们。 因此,当您想上二等舱时,您可以在第一个活动中使用类似此代码的意图:

      Intent i = new Intent(ActivityOne.this, ActivityTwo.class);
      i.putExtra("value", "some string");
      startActivity(i);
      

      在第二个活动中使用此代码:

      Bundle extras = getIntent().getExtras();
      // get data via the key
      String value1 = extras.getString("value");
      

      你可以拥有任意数量的额外物品

      【讨论】:

        【解决方案4】:

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2017-11-19
          • 2014-03-29
          • 2015-10-10
          • 2013-09-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多