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

时间:2015-10-12 02:04:35

标签: android android-listview

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

这是我的代码..

公共类列表扩展了Activity {

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);
            }
        });

1 个答案:

答案 0 :(得分:1)

使用&#39; Intent.PutExtra()&#39;传递值。方法和检索&#39; onCreate&#39;其他活动的方法。

rldlist.setOnItemClickListener(new AdapterView.OnItemClickListener() {

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

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



        }
    });

现在,在您的&#39; Addbudget&#39;活动的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);

完成。 :)