-1

我是android新手,所以请帮我解决这些问题
如何将listview的多个值(如文本和图像)传递给另一个活动显示用户选择(单击)的列表视图项目的详细信息视图?

它给了我一个错误,显示在我上传的图片中 在此处输入图像描述

这些是我的 setonitemclicklistener 函数 // 单个列表行的单击事件 list.setOnItemClickListener(new OnItemClickListener() {

            public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) {

                Intent i = new Intent();
                i.setClass(ListOfHotels.this, SampleActivity.class);
                // parameters
                i.putExtra("position", String.valueOf(position + 1));

                /* selected item parameters
                 * 1.   Hotel name
                 * 2.   address
                 * 3.   distance
                 * 4.   icon   
                 */
                i.putExtra("name", hotelDataCollection.get(position).get(KEY_NAME));
                i.putExtra("address", hotelDataCollection.get(position).get(KEY_ADDRESS));
                i.putExtra("distance", hotelDataCollection.get(position).get(KEY_DIST));
                i.putExtra("icon", hotelDataCollection.get(position).get(KEY_ICON));

                // start the sample activity
                startActivity(i);
            }
4

5 回答 5

1
@Override   
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

        Item item = (Item)parent.getItemAtPosition(position);
        String id = String.valueOf(item.getId());
        Bitmap image = id item.getImg();            

        ByteArrayOutputStream bos = new ByteArrayOutputStream();
        image.compress(Bitmap.CompressFormat.JPEG, 70, bos);
        byte[] imageByteArray = bos.toByteArray();

        Intent intentDetail = new Intent();

        intentDetail.setClass(getActivity(), OtherActivity.class);
        intentDetail.putExtra("id", id);
        intentDetail.putExtra("img", imageByteArray);                        

        startActivity(intentDetail);            

    }

应该是这样的。我猜你必须将你的图像放入一个字节数组中才能使用 putExtra。

于 2013-05-16T12:33:12.687 回答
0

您可以使用 intent.putExtra("key","value") 方法将数据传递给另一个活动。

从该活动中使用 getIntent().getExtra("key") 方法来访问该数据。

像这样

     Intent i = new Intent(NavigationActivity.this, DetailsScreen.class);
     URL = entries.get(arg2).getLink();
     i.putExtra("type", "json");
     i.putExtra("Url",URL);
     i.putExtra("Header", entries.get(arg2).getTitle());
     startActivity(i);

然后

    String url = getIntent().getStringExtra("Url");
于 2013-05-16T12:34:05.633 回答
0

如果您将一行的信息保留在一个对象中,您可以使用 Intent将其传递给下一个活动:

Intent i = new Intent(CurrentActivity.this, NextActivity.class);
            i.putExtra("info", object);
            startActivity(i);

您必须在您的对象类中实现Serializable,当您在 NextActivity 中时,您可以执行类似的操作

myObject = (MyObject) getIntent().getExtras().getSerializable("info");
于 2013-05-16T12:35:20.457 回答
0

我想它会帮助你。

intent.putParcelableArrayListExtra(name, value);

于 2013-05-16T12:37:19.840 回答
0

我解决了这个问题。实际上我忘记在清单文件中写入活动。非常感谢您为我解决问题而付出的努力

于 2013-10-01T10:23:16.670 回答