You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在列表选中项后启动新Activity并展示对应内容?

实现ListView条目点击跳转并展示详情

首先看你提供的代码,有几个小语法问题需要修正,比如onClick方法的定义要规范,还有变量重复声明的问题。下面是完整的实现步骤和代码,帮你搞定这个需求:

1. 修正并补全ListView的点击监听器

ListView的条目点击需要用专门的OnItemClickListener,它能直接拿到点击位置,方便获取对应数据。补全后的代码如下:

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {
        // 获取当前点击条目的内容
        String itemContent = (String) adapterView.getItemAtPosition(position);
        
        // 创建Intent,跳转到详情页面的Activity
        Intent intent = new Intent(YourCurrentActivity.this, DetailActivity.class);
        // 把条目内容通过Intent传递过去,用"ITEM_CONTENT"作为标识键
        intent.putExtra("ITEM_CONTENT", itemContent);
        startActivity(intent);
    }
});

注意:把YourCurrentActivity替换成你当前这个ListView所在的Activity类名(比如MainActivity)。

2. 创建详情展示的Activity(DetailActivity)

第一步:写详情页的布局文件(activity_detail.xml)

在布局里添加一个TextView用来展示条目内容:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="16dp"
    android:orientation="vertical">

    <TextView
        android:id="@+id/tv_detail_content"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textSize="18sp" />

</LinearLayout>

第二步:编写DetailActivity的逻辑代码

在这个Activity里接收传递过来的数据,并显示在TextView上:

public class DetailActivity extends AppCompatActivity {

    private TextView tvDetailContent;

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

        tvDetailContent = findViewById(R.id.tv_detail_content);

        // 获取从之前页面传递过来的Intent
        Intent intent = getIntent();
        if (intent != null) {
            String itemContent = intent.getStringExtra("ITEM_CONTENT");
            // 把内容设置到TextView上
            tvDetailContent.setText(itemContent);
        }
    }
}

3. 在AndroidManifest.xml中注册DetailActivity

别忘了在清单文件里注册这个新Activity,不然运行会崩溃:

<application ...>
    <!-- 你已有的其他Activity -->
    <activity android:name=".DetailActivity" />
</application>

关键细节说明

  • 为什么用OnItemClickListener:ListView的条目点击不能直接用普通的OnClickListener,OnItemClickListener能直接拿到点击的position,轻松定位到对应条目数据。
  • Intent传值:putExtra可以传递简单数据类型,如果是复杂对象,可以用序列化或者Parcelable来实现。
  • 数据接收:目标Activity通过getIntent()拿到传递过来的Intent,再用对应类型的getXXXExtra方法取出数据即可。

这样就能完美实现点击ListView条目跳转到新页面并展示对应内容啦~

内容的提问来源于stack exchange,提问作者René B

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:02:53