单击列表视图项目值应该传递并显示给另一个激活

时间:2016-06-08 08:02:10

标签: android sqlite listview cursor adapter

我对如何将这些值传递给另一个活动感到困惑。

我知道有多种选择,但我不清楚,所以请帮我解决这个问题。

正如您在上面看到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的相同值。

请帮帮我。

提前致谢。

1 个答案:

答案 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);