1

我在我的活动中使用 ListView。在任何已选择的列表项(ID)上,它应该在另一个活动中显示整行(与 ID 关联)。我使用捆绑对象通过“putExtra”传递长值。但这也不起作用。我可以知道我怎么能完成它。?

第一项活动:

Bundle dataBundle = new Bundle();
dataBundle.putLong("ID",id);

Intent myIntent = new Intent();
myIntent.setClassName("com.mink7.databaseapplication", "com.mink7.databaseapplication.OnItemClickFromLV");
myIntent.putExtras(dataBundle);
startActivity(myIntent);

第二个活动:

Bundle extras = getIntent().getExtras(); 

if(extras !=null)
{
    long idd = extras.getLong("ID",0);
    Cursor c=db.getName(idd);
    final String name_ret = c.getString(c.getColumnIndex("name"));
    final int age_ret = Integer.valueOf(c.getString(c.getColumnIndex("age")));
    final String city_ret = c.getString(c.getColumnIndex("city"));
    t1.setText(name_ret);
    t2.setText(age_ret);
    t3.setText(city_ret);
}
4

7 回答 7

2

尝试这个。

对于将数据从第一个活动传递到第二个活动:-

Intent myIntent = new Intent();
myIntent.setClassName("com.mink7.databaseapplication", "com.mink7.databaseapplication.OnItemClickFromLV");
myIntent.putExtras("ID", id);
startActivity(myIntent);

对于获取数据:-

Bundle bdl=getIntent().getExtras();
long id=bdl.getLong("ID");
于 2012-10-30T09:14:51.997 回答
2

直接加long就好intent.putExtra("ID",value)了,就好像extra已经是键值对了。然后用于接收第二个活动值的代码应该可以工作。

于 2012-10-30T08:56:12.017 回答
2
//First Activity(Pass Long Value through intent.putExtra("KEY",LongValue) )        
long longValue = 991909000000L;    
Intent myIntent = new Intent(getApplicationContext(),Second.class);    
myIntent.putExtra("KEYVALUE",longValue);    
startActivity(myIntent);    
//SecondActivity (Second.class)(Get Long value through Bungle)    
Bundle b1 = getIntent().getExtras();
long longValue = b1.getLong("KEYVALUE");    
Toast.makeText(getApplicationContext(),"Long Value :- " + longValue,Toast.LENGTH_LONG).show();        
//Manifest.xml (define your second class file in manifest file)    
<activity android:name=".Second" />    
于 2012-10-30T10:17:24.920 回答
1
// In Activity A                 
Hashtable hashtable = new Hashtable();  
/* adding element in hashtable */  

Intent intent = new Intent(A.this, B.class);    
intent.putExtra("hashtable", hashtable);  
intent.putExtra("MyClass", obj);  
startActivity(intent);   

//in Activity B  
Bundle bundel = getIntent().getExtras();  
try{  
    ads = (myClass) bundel.get("MyClass");  
    hashtable = (Hashtable) bundel.get("hashtable");  
}catch(Exception e){
    Log.i(" Error at bundle " , e.toString());
}  

并使用此链接,您可以将所有值从一个活动传递到另一个活动..

http://www.coderanch.com/t/470615/Android/Mobile/Passing-object-one-other-activity

于 2012-10-30T09:11:18.330 回答
1

尝试这个。您可以直接将值传递给活动,而无需使用 bundle。

myIntent.putExtras("ID",id);
于 2012-10-30T08:56:16.837 回答
0

尝试这个

myIntent.putExtra("ID",id);

检查此以获取更多信息

http://droidweb.com/2010/02/developer-tip-10-passing-data-between-activities-via-bundles/

于 2012-10-30T09:02:10.420 回答
0

嘿伙计们,我能够完成它。

利用

t1.setText(String.valueOf(name_ret));

代替

t1.setText(name_ret)

于 2012-10-30T09:23:04.417 回答