在我的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);
}
});
答案 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);
完成。 :)