我对如何将这些值传递给另一个活动感到困惑。
我知道有多种选择,但我不清楚,所以请帮我解决这个问题。
正如您在上面看到listView.
的快照现在,我想在listview
listview items.
中显示的任何记录显示给其他活动
通过使用意图,我试图将值传递给另一个活动。
其ListView活动ItemClickListener。
这是listview快照:
showRecord.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent intent = new Intent(DaybookActivity.this,DiaplayDaybookDetailsOnClickListView.class);
int pos = parent.getSelectedItemPosition();
objectDayBook.db_id = l_cursor.getInt(l_cursor.getColumnIndex("_id"));
intent.putExtra("date",pos);
intent.putExtra("party",pos);
intent.putExtra("item_onacc",pos);
intent.putExtra("quant_amnt",pos);
intent.putExtra("remarks",pos);
intent.putExtra("type",pos);
startActivity(intent);
这是详细的活动代码片段,我想在其中显示记录。
以下是详细视图快照:
public class DiaplayDaybookDetailsOnClickListView extends AppCompatActivity {
String passDate ;
String passName;
String passItem_Onacc;
String passQuant_amount;
String passRemark;
String passType;
private TextView d_date;
private TextView d_name;
private TextView d_onacc_item;
private TextView d_quant_amount;
private TextView d_remark;
private TextView d_type;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_display_daybook_onclick_listview);
passDate =this.getIntent().getStringExtra(DaybookActivity.display_date);
passName =this.getIntent().getStringExtra(DaybookActivity.display_name);
passItem_Onacc =this.getIntent().getStringExtra(DaybookActivity.display_onacc_item);
passQuant_amount =this.getIntent().getStringExtra(DaybookActivity.display_qunat_amnt);
passRemark =this.getIntent().getStringExtra(DaybookActivity.display_remark);
passType =this.getIntent().getStringExtra(DaybookActivity.display_type);
d_date = (TextView)findViewById(R.id.disp_date);
d_name =(TextView)findViewById(R.id.disp_party);
d_onacc_item =(TextView)findViewById(R.id.disp_items_onacc);
d_quant_amount =(TextView)findViewById(R.id.disp_qunt_amnt);
d_remark =(TextView)findViewById(R.id.disp_remarks);
d_type =(TextView)findViewById(R.id.disp_type);
d_date.setText(passDate);
d_name.setText(passName);
d_onacc_item.setText(passItem_Onacc);
d_quant_amount.setText(passQuant_amount);
d_remark.setText(passRemark);
d_type.setText(passType);
}
}
如果单击listview项目而不是传递那些我需要显示的记录,而不是它取单个值并显示所有textview的相同值。
请帮帮我。
提前致谢。
答案 0 :(得分:0)
使用Intent Extras将值从一个活动传递到另一个活动。在您的示例中,据我所知,您希望在单击某个项目时启动另一个活动,同时将该项目中的值传递给该项目。
您可以通过向ItemClickListener
添加listView
并将点击的项目中的值传递给意图来实现这一目标:
listView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
ItemClicked item = parent.getItemAtPosition(position);
Intent intent = new Intent(Activity.this,destinationActivity.class);
intent.putExtra("NAME_YOU_CHOOSE", item.getValue() );
//based on item add info to intent
startActivity(intent);
}
});
编辑:我发现您在答案中添加了尝试的代码,但您有一个错误: 改变
int pos = parent.getItemAtPosition();
到
int pos = parent.getItemAtPosition(position);