如何将值从列表视图传递到 detalis Activity
Posted
技术标签:
【中文标题】如何将值从列表视图传递到 detalis Activity【英文标题】:how to pass values from list view to an detalis Activity 【发布时间】:2018-09-08 02:11:22 【问题描述】:我创建了一个简单的listView
,它从服务器获取数据,一切正常,但现在我想将listView
(Item) 的值传递给另一个Activity
public void onViewBind(View view, Cursor cursor, ODataRow row)
_list = new ArrayList<>();
OControls.setText(view, R.id.person_name, row.getString("name"));
// Retrive Code dept*/
Dep dept = new Dept(context, null);
ODataRow rows_c = dept.select(
new String[]"code"
).get(row.getInt("dept_id")-1);
_list.add(rows_c.getString("code"));
OControls.setText(view, R.id.dept_person, rows_c.getString("code"));
// Retrive name person*/
ResPartner partner = new ResPartner(context, null);
ODataRow rows = partner.select(
new String[]"name"
).get(row.getInt("person_id")-1);
OControls.setText(view, R.id.Type_sanction, rows.getString("name"));
我正在使用数组列表将值从第一种方法传递给第二个方法,但是当我单击时我想在列表视图中传递一个对象对应的行
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long
id)
final Intent intent;
intent = new Intent(view.getContext(), Detailsdept.class);
Bundle extras = new Bundle();
extras.putSerializable("ARRAYLIST",(Serializable)_list);
for(int i=0; i<_list.size(); i++)
String x = _list.get(i);
extras.putString("code", x);
intent.putExtras(extras);
view.getContext().startActivity(intent);
Toast.makeText(view.getContext(), "id"+position, Toast.LENGTH_SHORT).show();
【问题讨论】:
我需要传递对象而不是删除 【参考方案1】:在您的适配器中创建接口
public interface OnItemClickListener
void onItemClicked(int position, Object object);
在您的适配器调用中
Adapter adapter = new Adapter(list, new Adapter.OnItemClickListener()
@Override
public void onItemClicked(int position, Object object)
// Handle Object of list item here
);
在您的适配器上
private OnItemClickListener onItemClickListener; // Global scope
在构造函数调用中:
this.onItemClickListener = onItemClickListener;
关于您的项目点击事件:
itemView.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View view)
onItemClickListener.onItemClicked(position, _list.get(position));
);
【讨论】:
我正在使用这个适配器我可以把这段代码放在这个类适配器github.com/Odoo-mobile/crm/blob/… 是的,为什么不呢。否则你可以修改现有的接口“IOnItemClickListener”,它有 public void onItemClick(View view, int position); --- 需要修改为 public void onItemClick(View view, int position, Object obj);以上是关于如何将值从列表视图传递到 detalis Activity的主要内容,如果未能解决你的问题,请参考以下文章
如何将值从基本适配器传递到 Android 中的 Activity
使用 location.href 将值从视图传递到控制器为 null
如何将值从 javascript 函数传递到 django 视图