android ListView将隐藏值从一个Activity传递到另一个Activity

时间:2015-10-20 03:10:01

标签: android mysql json listview android-listview

我有一个使用ArrayAdapter创建的ListView,它使用JSON解析从MySQL数据库获取不同的值。现在,当用户点击列表中的项目时,我将其中一些值传递给下一个活动:

CPU: Intel Haswell microarchitecture, speed 3.5e+06 MHz (estimated)
Counted CPU_CLK_UNHALTED events (Clock cycles when not halted)with  a unit mask of 0x00 (No unit mask) count 100000
CPU_CLK_UNHALT...|
samples|      %|
------------------
 708080 100.000 l1thrash
CPU_CLK_UNHALT...|
  samples|      %|
------------------
   707010 99.8489 l1thrash
     1068  0.1508 no-vmlinux
        1 1.4e-04 ld-2.19.so
        1 1.4e-04 libc-2.19.so

这样工作正常,但现在我想从MySQL数据库中获得2个不应该在ListView中显示的值。我该走哪条路? 我尝试在ArrayAdapter中添加值,但后来我意识到我通过获取textview信息传递值。如何在没有ListView中显示的情况下从ArrayList适配器传递一些intent? 也许有不同的方法来做到这一点?

这就是我解析JSON的方法:

@Override
public void onItemClick(AdapterView<?> a, View v, int position, long id)
{
    Intent intent = new Intent(ListActivity.this, ListingDescription.class);

    String place_name = ((TextView) v.findViewById(R.id.textView3)).getText().toString();

    intent.putExtra("place_name",place_name);
    startActivity(intent);

我还考虑过将这些值设置为Invisible在布局中,但我认为这绝对不是要走的路。我会感激任何帮助!

3 个答案:

答案 0 :(得分:0)

您可以通过intent传递Places对象。

intent.putExtra("some_name",adapter.getItem(position).get(position).toString());

在另一个Activity中:

JSONObject obj = new JSONObject(getIntent().getStringExtra("some_name"));

答案 1 :(得分:0)

在Places中创建一个getter方法,因为你已经有了setter方法。

列出placeslist = new ArrayList&lt;&gt;();

将地点列表添加到您的适配器。

OnItemClick。

@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
    String image = adapter.getItem(position).getImage();
    String name= adapter.getItem(position).getName();
 //use these in intents
}

修改

   final CustomAdapter adapter = new CustomAdapter(this, R.layout.activity_list_view, placeslist );
        ListView listView = (ListView) findViewById(R.id.radioGroup);
        listView.setAdapter(adapter);
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                String image = adapter.getItem(position).getImage();
                String name= adapter.getItem(position).getName();
            }
        });
    }

答案 2 :(得分:0)

使用setTag(Object o)getTag()方法执行此操作的最简单方法。

程序

  1. 在适配器中实现getView()方法时,将对象设置为视图。

  2. 然后OnItemClicked调用getTag()并手动将其转换为您为数据定义的类。

  3. 在致电startActivity(Intent i)

  4. 之前,将数据传递给您的意图