【问题标题】:Creating different activities for each item in a ListActivity为 ListActivity 中的每个项目创建不同的活动
【发布时间】:2017-03-14 20:31:41
【问题描述】:

当单击 ListView 中的项目时,如何创建新活动?如果我可以在单个 java 文件中创建它,那将是最好的。此外,如果有人解释我如何在新活动中显示文本,那将是很棒的,我可能是错的,但我假设我可以以某种方式使用 TextView。任何想法都会有所帮助,在此先感谢!

【问题讨论】:

  • 捕获项目点击事件并创建一个包含发送新活动所需数据的意图。然后像往常一样以您的意图开始活动。这可能很有用:stackoverflow.com/documentation/android/103/intent/412/…
  • 您应该在谷歌上搜索“开始另一项活动”以获得有关如何执行此操作的好教程。

标签: java android listview android-activity


【解决方案1】:

捕获项目点击事件并创建一个意图,其中包含发送新活动所需的数据。然后像往常一样按照您的意图开始活动。

YourActivity.java

listView.setOnItemClickListener(new OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            Intent intent = new Intent(YourActivity.this, YourNextActivity.class);
            // Insert your logic to send data based on which item was clicked here
            intent.putExtra("MY_EXTRA_DATA", "Some data!");

            startActivity(intent);
        }
});

在你启动的activity中,你可以使用getIntent()来检索你传入的数据。

YourNextActivity.java

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

    Intent intent = getIntent();
    String data = intent.getStringExtra("MY_EXTRA_DATA");

    TextView textView = (TextView) findViewById(R.id.yourId);
    textView.setText(data);
}

【讨论】:

  • 如果 OP 有多个项目会怎样?
  • 他需要使用一些逻辑来根据点击的项目来确定要发送哪些数据来代替"Some data!"
  • “在单个 Activity 中创建它”怎么样?
  • 我不确定你的意思。如果他正在创建一个新活动,那么为该活动创建第二个文件就是要走的路
  • 是的,这是有道理的。在那种情况下,我的回答基本上就是你所需要的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-02
  • 2018-08-05
  • 1970-01-01
  • 2018-05-10
  • 1970-01-01
  • 2015-12-21
相关资源
最近更新 更多