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

Kotlin实现点击ListView条目启动新Activity的方法咨询

实现ListView条目点击跳转新Activity的完整示例

没问题!这是Android开发里非常常见的需求,我给你一步步拆解实现过程,代码都是可以直接上手用的~

步骤1:准备布局文件

首先我们需要两个布局:主界面的布局(包含ListView),以及跳转后的新Activity布局。

主界面布局(比如activity_main.xml)

<?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:orientation="vertical">

    <ListView
        android:id="@+id/list_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</LinearLayout>

新Activity布局(比如activity_detail.xml)

这个布局就简单整个文本展示就行,用来接收主界面传过来的数据:

<?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:gravity="center"
    android:orientation="vertical">

    <TextView
        android:id="@+id/detail_text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="20sp" />

</LinearLayout>

步骤2:创建新的DetailActivity

新建一个DetailActivity类,用来展示跳转后的内容,这里我们可以接收主界面传过来的条目数据:

import android.os.Bundle;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;

public class DetailActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_detail);

        // 获取从主Activity传递过来的数据
        String itemText = getIntent().getStringExtra("ITEM_TEXT");
        
        // 展示数据
        TextView detailText = findViewById(R.id.detail_text);
        detailText.setText(itemText);
    }
}

步骤3:在主Activity中设置ListView的点击事件

接下来是核心部分,在主Activity里初始化ListView、设置适配器,然后给条目添加点击跳转逻辑:

import android.content.Intent;
import android.os.Bundle;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import androidx.appcompat.app.AppCompatActivity;
import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {

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

        // 1. 准备ListView的数据源
        ArrayList<String> dataList = new ArrayList<>();
        dataList.add("条目1:点击我跳转");
        dataList.add("条目2:试试这个");
        dataList.add("条目3:第三个选项");

        // 2. 初始化ListView并设置适配器
        ListView listView = findViewById(R.id.list_view);
        ArrayAdapter<String> adapter = new ArrayAdapter<>(this,
                android.R.layout.simple_list_item_1, dataList);
        listView.setAdapter(adapter);

        // 3. 设置条目点击事件,跳转至DetailActivity
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, android.view.View view, int position, long id) {
                // 获取当前点击条目的内容
                String selectedItem = dataList.get(position);
                
                // 创建Intent,指定从当前Activity跳转到DetailActivity
                Intent intent = new Intent(MainActivity.this, DetailActivity.class);
                // 传递数据到新Activity
                intent.putExtra("ITEM_TEXT", selectedItem);
                
                // 启动新Activity
                startActivity(intent);
            }
        });
    }
}

步骤4:别忘了在Manifest里注册新Activity

这一步很容易忘!打开AndroidManifest.xml,把DetailActivity注册进去:

<application ...>
    <activity android:name=".MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <!-- 注册DetailActivity -->
    <activity android:name=".DetailActivity" />
</application>

额外说明

  • 如果你的ListView用的是自定义Adapter(比如继承BaseAdapter),点击事件的设置逻辑是完全一样的,不需要在Adapter里单独处理点击,直接给ListView设置setOnItemClickListener就行。
  • 如果是用Kotlin开发,代码会更简洁,核心逻辑还是通过Intent构建跳转,在点击回调里启动Activity,比如:
listView.setOnItemClickListener { parent, view, position, id ->
    val selectedItem = dataList[position]
    val intent = Intent(this, DetailActivity::class.java)
    intent.putExtra("ITEM_TEXT", selectedItem)
    startActivity(intent)
}

这样就完成啦!点击ListView的任意条目,都会跳转到新的Activity并展示对应的内容~

内容的提问来源于stack exchange,提问作者misolo89

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 12:02:54