ListView具有动态意图,可在每次调用时更改TextView和WebView

时间:2011-07-02 05:07:27

标签: android listview android-listview android-intent

发送putExtra()

的活动
@Override
protected void onListItemClick(ListView l, View v, int position, long id)
{
    super.onListItemClick(l, v, position, id);
    final Intent intent = new Intent();
    // Set up different intents based on the item clicked: 
    switch (position)
    {
        case ACTIVITY_0:
            intent.putExtra("Value1", "Display this text!");
            intent.setClass(this, com.a.someclass.class);
}
    startActivityForResult(intent, position);
}

接收putExtra()

的活动
@Override
protected void onCreate(Bundle bundle) {
    // TODO Auto-generated method stub
    super.onCreate(bundle);
    setContentView(R.layout.information);
    Bundle extras = getIntent().getExtras();
    if (extras == null) {
        return;
    }
    String value1 = extras.getString("Value1");

    if (value1 != null) {
        informationTitle = (TextView)findViewById(R.id.informationTitle);
        informationText = (WebView)findViewById(R.id.informationText);
        informationTitle.setText(value1);
    }

原始讯息:

我一直在寻找一个关于这方面的好教程,我已经在网上发布了我的代码,所以人们可以看一下但是找不到我需要的帮助。

我是新手,我基本上要做的就是有一个项目列表,这些项目都链接到一个类,它有一个动态TextView,用于标题,WebView用于内容,等等基本上当在列表上单击一个项目时,它将打开新的活动/意图,并且它还将传递参数以相应地更改TextView和WebView。

我知道如何通过为列表中的每个项目创建一个新类来打开一个新的活动,但我很确定有一种更简单的方法可以重用一个类并只是不断更改TextView和WebView。我说这个的原因是因为我的名单上有15个项目,但是这会延长加班时间,所以我不想制作50-60个不同的课程来打开每个新项目。

如果有人能指出我正确的教程或给我一些见解,我将非常感激!

谢谢

2 个答案:

答案 0 :(得分:1)

要实现这一点,您可以使用相同的Intent来调用相同的Activity,而不是为每个列表项使用不同的Intent,而是将附加内容与其一起传递。< / p>

例如,假设您要根据单击的列表项传递不同的String。你想要

myIntent.putExtra(String key, String value);
startActivity(myIntent);

您从此Activity开始的Intent将能够使用

在其onCreate()中抓取这些额外内容
Bundle extras = getIntent().getExtras();

并使用概述here的方法访问您在Intent中添加的内容。这样,您可以对所有列表项使用单个Activity,但Activity会根据额外值显示不同的信息。

答案 1 :(得分:0)

我会给你一个链接,你可以获得最好的教程...... http://www.vogella.de/articles/Android/article.html