【问题标题】:Android ListView - Assigning Intents to Strings in a ListviewAndroid ListView - 将意图分配给 Listview 中的字符串
【发布时间】:2012-06-02 23:27:31
【问题描述】:

我有一个足球队名称的 ListView,使用下面的代码将其添加到列表视图中。

public final String[] teamnames = { "Arsenal", "Chelsea", "Man United" };

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,teamnames);
    setListAdapter(adapter);

}

我需要一些关于 onListItemClick 方法的帮助。

对于列表视图中的每个足球队,我想为其分配一个意图。因此,Arsenal 会打开一个名为 ars.java 的课堂活动。

这需要为 20 个团队完成。

如果我设置了一个类名数组,我如何遍历列表视图并将相应的类名分配给每个团队名?

【问题讨论】:

  • 你为什么要这样做?
  • @Barak 因此,当用户点击列表视图中的团队名称时,它会将他们带到该团队的活动。
  • 但是为什么要为每个团队安排活动呢?
  • 您的每个团队课程都不同吗?我可能会建议使用一个“团队”类,并在创建意图时传入使用 putExtra() 函数选择的团队名称。为每个团队设置一个班级似乎您可能会复制大量代码。
  • 我认为下面的两个示例应该可以帮助您。查看 Activity 类的生命周期。 This link 应该提供很多有用的信息。

标签: java android arrays onclick android-listview


【解决方案1】:

您在设置意图时(在开始活动之前)添加了一个额外的内容,如下所示:

Intent myIntent = new Intent(ListActivity.this, TeamActivity.class);
myIntent.putExtra("TeamName", teamname);
ListActivity.this.startActivity(myIntent);

然后你在你这样调用的活动中检索它:

Bundle extras = getIntent().getExtras();
String team = extras.getString("TeamName");

这会将您的团队名称放入 teamstring 变量中,供您根据需要使用。

【讨论】:

  • 感谢您向我解释这个概念。打算试试这两个答案。
  • 第一个sn-p代码是否进入onListItemClick()方法?
  • 是的,这就是它应该去的地方。注意我有一个错误(我使用了我的一个类名而不是你的,我现在已经更正了)。
  • 我在运行我的应用程序时收到以下错误:Key TeamName expected String but value is a [Ljava.lang.String;.返回默认值
【解决方案2】:

是的,我也建议使用intent.putExtra 这是一个示例实现:

    public void onListItemClick(ListView l, View v, int position, long id) {
        teamName = teamNames[position]; // Assuming the order is the same
        Intent intent = new Intent().setClass(getActivity(), ShowDetail.class);
        intent.putExtra("team", teamName);
        startActivity(intent);
    }

ShowDetail.class 是您要启动的活动,它传递了一个包含团队名称的额外内容。 要获取ShowDetail中的团队名称,可以拨打

    String team = getIntent().getStringExtra("team");

onCreate 方法中。

【讨论】:

  • 谢谢,我试试看。
猜你喜欢
  • 1970-01-01
  • 2023-03-21
  • 1970-01-01
  • 1970-01-01
  • 2013-03-28
  • 1970-01-01
  • 1970-01-01
  • 2013-10-21
  • 2013-05-19
相关资源
最近更新 更多