将变量值从一个类传递到另一个类的最佳方式



我是android的新手,我正在学习。

我已经创建了一个简单的登录系统,它将与php通信。运行正常,

现在有3个活动,

第一次登录第二-菜单第三视图

在登录中,他们必须指定他们的用户名,我希望看到用户名(3)我怎样才能拿到呢?我试着谷歌和阅读,没有一个为我工作:(

我使用

    final Button btn = (Button) findViewById(R.id.btn);
    btn.setOnClickListener(new View.OnClickListener() {
EditText name = (EditText)findViewById(R.id.name);
});

你正在寻找的是意图'额外'。这些是Intent上从Activity传递到Activity的额外信息。

有一个例子在源代码中为我的应用程序Google Moderator for Android.

创建一个带有一些额外信息(这里是'series ID')的Intent:

  Intent intent = new Intent(activity, TopicActivity.class);
  intent.putExtra("seriesId", seriesId);
  //...
  activity.startActivity(intent);

http://www.google.com/codesearch/p?hl=en RbTgvHmKhC4/箱子/src/com/google/android/apps/moderator/TopicListEntry.java& l = 49

在另一个活动中,从相同的意图(现在是启动意图)中获取值:

   int seriesId = getIntent().getIntExtra("seriesId", -1);

http://www.google.com/codesearch/p?hl=en RbTgvHmKhC4/箱子/src/com/google/android/apps/moderator/TopicActivity.java& l = 183

在这个例子中,-1是如果没有附加的"seriesId"将返回的值。

您可以将用户名设置为一个公共的静态值,以便可以从应用程序中的任何类访问它。

或者你可以使用Intent方法putExtra(..) http://developer.android.com/reference/android/content/Intent.html

将它传递给activity

您可以使用getText()跟随toString()EditText小部件获取文本。所以你的代码应该是:

final Button btn = (Button) findViewById(R.id.btn);
    btn.setOnClickListener(new View.OnClickListener() {
    EditText nameWidget = (EditText) findViewById(R.id.name);
    String username = nameWidget.getText().toString();
});

最新更新