【发布时间】:2019-07-11 02:51:45
【问题描述】:
在我的活动中,我有一个HorizontalScrollView 和九个TextViews,下面我有一个ListView。如果我点击九个TextViews 之一,列表将刷新并显示一些数据,这些数据存储在我的数据库中,并且与TextView 具有相同的值(这没有任何问题)。
现在我单击一个 ListItem 并打开一个新活动。
我希望TextView 的值也将发送到新的Activity。
这是我的代码的一部分:
dataSource = new ArrayList<>();
lvWP.setAdapter(new WPAdapter(this, dataSource));
horiView = (HorizontalScrollView) findViewById(R.id.horiView );
lvWP.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Object element = parent.getAdapter().getItem(position);
if (element instanceof Workpackage){
Workpakage workpackage= (Workpakage ) element;
Intent wp = new Intent(ProjektOverview.this, WorkpackageDetail.class);
String projekt = tvProjectTitle.getText().toString();
wp.putExtra(WorkpackageDetail.WP_KEY, workpackage.getId());
wp.putExtra("DEPARTMENT", department); //THIS SHOULD BE THE STRING FROM tvWKA
wp.putExtra("PROJECTNAME", project);
startActivity(wp);
}
}
});
// HERE I CLICK ON ONE TEXTVIEW FROM THE HORIZONTALSCROLLVIEW
tvWKA.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String department= "WKA"; // THIS STRING I WANT TO SEND TO MY LISTVIEW ONCLICKLISTENER
String project= tvProjectTitle.getText().toString();
refreshList(department, projekt);
}
});
public void refreshList(String department, String project) {
dataSource.clear();
dataSource.addAll(WorkpackageDB.getInstance(ProjectOverview.this).readAllAP(department, projekt));
lvWP.invalidateViews();
}
【问题讨论】:
-
为什么不将 department 设置为 Activity 类的字段?这样,您可以在 onItemClick() 中访问它
-
因为这很容易 :) 不认真,谢谢,从来没有想过这么简单的方法.. 试了一下,效果很好.. 非常感谢
标签: java android string listview onitemclicklistener