5

我是 Android 开发的新手。

我创建了一个简单的主从应用程序,它从一个简单的垂直滚动主题列表开始。

当用户选择一个主题时,会出现一个详细信息屏幕,用与所选主题相关的详细信息列表代替第一个屏幕。

我希望详细信息屏幕的标题显示用户在第一页上选择的主题,但工作近一周后仍未能解决问题。

我只需要知道,这可以做到吗?不是在找人来帮我解决这个问题,但可能是一个提示或一个教程链接来说明如何做到这一点。

注意:我会发布一张我想做的图,但我是新来的,还没有 10 声望。

谢谢, SonCoder

4

2 回答 2

6

不完全确定你想要什么,但无论哪种方式.. - 你有一个列表视图。列表视图中的每个视图(数据)都应该由模型表示。(又名一个单独的类,其中包含您要为每个列表项表示的特定信息。

- 编写一个自定义列表适配器(从基本适配器扩展)。 http://www.androidhive.info/2012/02/android-custom-listview-with-image-and-text/ 在此类的 getView 方法中,您在 textview 中加载所需模型的 String 字段.

- 确保在上面的适配器中使用 viewholder 模式。我注意到这个例子没有使用一个。这加快了列表中的滚动速度,因为对 findViewById 的调用要少得多。

- 在列表活动中设置一个 View onClick 监听器。这应该创建一个意图(用于启动活动)或片段事务(用于片段)。发送整个模型的实例(将从

parent.getAdapter().getItem(position); 

在点击方法中)进入详细活动。

- 如果你想设置一个文本视图标题,只需获取文本视图并从模型中设置它。它将与您在适配器的 getView 方法中膨胀的文件相同。

- 如果要在操作栏集中设置标题:

 this.getActionBar().setTitle(title)
于 2013-07-27T18:58:33.487 回答
3

这很简单。intent只需在启动时发送额外的数据,activity然后在活动中onCreate读取数据,然后使用setTitle(myString)活动中的方法。

setTitle(String title)顺便说一句,可以使用活动从任何地方调用。

所以,你在你的listadapter,那么你listener在你的观点上设置了一个对吗?onClickListener对整个“根”视图进行简单的处理就可以了。

在听众中你这样说:

Intent intent = new Intent(myActivity, MySubActivity.class);
intent.putExtra(key, titleName);
myActivity.startActivity(intent);

请注意,应在适配器的构造函数中设置活动引用,并且“key”字符串是您从 strings.xml 获得的内容。不要在代码中重复这些,因为如果您更改了一个而忘记更改其他的,您可能会得到一些奇怪的 NPE。

在你的 MySubActivity 中继续onCreate()

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    Intent intent = getIntent();
    String key = getString(R.string.my_title_key);
    String title = intent.getString(key);
    setTitle(title);
}

注意:我不确定所有方法名称是否正确,但类似这样。

于 2013-07-27T18:47:44.463 回答