我在我的活动中使用ListView。 在任何列表项seleted(ID)上,它应该在另一个活动中显示整行(与ID相关联)。 我使用bundle对象使用“putExtra”传递long值。但那也不起作用。我可以知道如何完成它。?
第一项活动:
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);
}
答案 0 :(得分:2)
只需直接添加long,就像intent.putExtra("ID",value)
额外内容已经是一个键值对。然后,用于接收第二个活动的值的代码应该正常工作。
答案 1 :(得分: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");
答案 2 :(得分: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" />
答案 3 :(得分:1)
试试这个。您可以直接将值传递给activity而不使用bundle。
myIntent.putExtras("ID",id);
答案 4 :(得分: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
答案 5 :(得分:0)
试试这个
myIntent.putExtra("ID",id);
检查以获取更多信息
http://droidweb.com/2010/02/developer-tip-10-passing-data-between-activities-via-bundles/
答案 6 :(得分:0)
使用
t1.setText(将String.valueOf(name_ret));
而不是
t1.setText(name_ret)