【发布时间】:2014-04-09 15:54:44
【问题描述】:
我有一个联系人列表视图,每个联系人都是一个 Java 对象,其中包含大量相关信息。其中一些信息显示在 ListView 中,但其余信息用于 DetailView。我正在尝试编写一种方法,该方法将我点击的任何联系人带到 DetailView,但我还需要随身携带该对象。我将所有联系人存储在 MainActivity.java 的 ArrayList 中
我的问题:我是否需要随身携带联系人对象,或者实际上是否有某种方法可以在另一个 Activity 中访问我的 ArrayList? 如果我可以/必须随身携带它,我该怎么做,因为 putExtra() 方法不将对象作为参数。
我的 MainActivity 的开头是这样的:
public class MainActivity extends Activity implements AdapterView.OnItemClickListener {
ListView list;
我现在有一个非常基本的 onClickListener,但不知道该放什么:
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
Intent intent = new Intent(MainActivity.this, DetailView.class);
intent.putExtra("contact", i);
startActivity(intent);
}
我觉得我对 MainActivity 类的初始定义与 onItemClick 方法或其他方法不对应,这就是它没有执行并将我带到另一个屏幕的原因。
【问题讨论】:
-
每个项目都有一个活动??你会发疯的!如果您有 50 件商品..我不想看到结果。在您的情况下选择
Fragments:developer.android.com/training/basics/fragments/index.html -
很抱歉,由于我是新手,我可能没有正确地表达这个问题。我想要的只是单击每个联系人并转到它的 DetailView。 DetailView 已经编写好了,只会在其字段中填充联系人的信息。
-
那么你有ActivityA和ActivityB,你不需要为每个项目添加其他的吗?你让我放心:)
-
是的,对不起,我就是这个意思。而ActivityB只是一个被填写的模板。
-
我在下面看到两个答案,他们只是传递用户 ID 或 id 这是要走的路。用 android 传递一个类是相当困难的,而你最终得到的是该类的一个副本。这是使用 android 将类发送到意图的示例。 stackoverflow.com/questions/21295328/…