我有一个使用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在布局中,但我认为这绝对不是要走的路。我会感激任何帮助!
答案 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()
方法执行此操作的最简单方法。
程序
在适配器中实现getView()
方法时,将对象设置为视图。
然后OnItemClicked
调用getTag()
并手动将其转换为您为数据定义的类。
在致电startActivity(Intent i)