繁体   English   中英

如何从一个活动的列表视图传递数据并将其传递给另一活动?

[英]How to pass the data from listview of one activity and pass it to another activity?

在我的Android应用程序中,我需要将listview的数据传递给另一个活动,例如,如果我单击listview中的“食物”项,我想在另一个活动的textview中获得“食物”。

这是我的代码。

公共课程列表扩展了活动{

String selected_id = "";
SimpleCursorAdapter adapter;
DBhelper helper;
SQLiteDatabase db;
Button btnd;
String budget;


protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.listlayout);

    helper = new DBhelper(this);



       Listview rldlist = (ListView) findViewById(R.id.rldlist);
       TextView ed= (TextView) findViewById(R.id.addbud);
       rldlist.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapter, View v, int position, long id) {


                Cursor row = (Cursor) adapter.getItemAtPosition(position);
                selected_id = row.getString(0);
                budget = row.getString(1);
                System.out.print("budget is"+budget);
                ed.setText(budget);

            }
        });

在上面的代码中, TextView ed= (TextView) findViewById(R.id.addbud); 从另一个活动引用了textview。

但是现在的问题是,TextView仍然为空。

下面是执行另一项活动的代码。

rldlist.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) {
                Intent myIntent = new Intent(list.this, addbudget.class);
                list.this.startActivity(myIntent);
            }
        });

只需使用“ Intent.PutExtra()”方法传递值,然后在其他活动的“ onCreate”方法中检索数据。

rldlist.setOnItemClickListener(new AdapterView.OnItemClickListener() {

@Override public void onItemClick(AdapterView arg0, View arg1, int position, long arg3){

            Intent myIntent = new Intent(list.this, addbudget.class);
myIntent .putExtra("passed data key",budget);
            startActivity(myIntent);



        }
    });

现在,在您的“添加预算”活动的onCreate()方法中,

Bundle data_from_list= getIntent().getExtras();
String value_in_tv= data_from_list.getString("passed data key");
TextView ed= (TextView) findViewById(R.id.addbud);
 ed.setText(value_in_tv);

做完了 :)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM