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

技术问题:如何点击ListView项在新页面打开及点击项在新页面展示内容

实现ListView列表项点击跳转并展示对应内容的方案

嘿,这两个都是Android开发里非常基础且常用的需求,我来一步步给你讲清楚实现方案,附带代码示例,你直接抄过去改改就能用~

一、点击ListView列表项打开新页面

要实现点击列表项跳转到新页面,核心是给ListView设置点击事件监听器,然后通过Intent启动目标Activity即可:

步骤&代码示例

  1. 先初始化ListView并设置适配器(假设你已经有数据源yourDataList):
// Java 代码
ListView listView = findViewById(R.id.list_view);
ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, yourDataList);
listView.setAdapter(adapter);
// Kotlin 代码
val listView = findViewById<ListView>(R.id.list_view)
val adapter = ArrayAdapter(this, android.R.layout.simple_list_item_1, yourDataList)
listView.adapter = adapter
  1. 设置OnItemClickListener,在点击事件中创建Intent并启动新页面:
// Java 代码
listView.setOnItemClickListener((parent, view, position, id) -> {
    // 跳转到你定义的DetailActivity(记得先创建这个Activity)
    Intent intent = new Intent(MainActivity.this, DetailActivity.class);
    startActivity(intent);
});
// Kotlin 代码
listView.onItemClickListener = AdapterView.OnItemClickListener { _, _, _, _ ->
    val intent = Intent(this@MainActivity, DetailActivity::class.java)
    startActivity(intent)
}

二、在新页面展示对应项的内容

这一步需要在跳转时把当前列表项的数据传递给新页面,然后在新页面中取出数据并展示:

步骤&代码示例

  1. 在点击事件中传递数据(以传递字符串为例):
// Java 代码
listView.setOnItemClickListener((parent, view, position, id) -> {
    // 获取当前点击项的内容
    String itemContent = yourDataList.get(position);
    Intent intent = new Intent(MainActivity.this, DetailActivity.class);
    // 用自定义的key传递数据,比如"ITEM_CONTENT"
    intent.putExtra("ITEM_CONTENT", itemContent);
    startActivity(intent);
});
  1. 在目标Activity(DetailActivity)中获取数据并展示:
// Java 代码 - DetailActivity
public class DetailActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_detail);
        
        TextView detailTextView = findViewById(R.id.detail_text_view);
        // 从Intent中取出传递的数据
        if (getIntent() != null) {
            String content = getIntent().getStringExtra("ITEM_CONTENT");
            // 将内容设置到TextView上
            detailTextView.setText(content);
        }
    }
}
// Kotlin 代码 - DetailActivity
class DetailActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_detail)
        
        val detailTextView = findViewById<TextView>(R.id.detail_text_view)
        intent?.let {
            val content = it.getStringExtra("ITEM_CONTENT")
            detailTextView.text = content
        }
    }
}

额外注意点

  • 别忘了在AndroidManifest.xml中注册你的DetailActivity,否则会出现跳转崩溃的情况:
<activity android:name=".DetailActivity" />
  • 如果要传递自定义对象,需要让对象实现Serializable或Parcelable接口。比如:
// 自定义对象实现Serializable
public class Item implements Serializable {
    private String title;
    private String content;
    
    // 构造方法、getter、setter
}

// 传递对象
Item clickedItem = yourItemList.get(position);
intent.putExtra("CLICKED_ITEM", clickedItem);

// 获取对象
Item item = (Item) getIntent().getSerializableExtra("CLICKED_ITEM");

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 03:42:47