1

アクティビティでListViewを使用しています。seleted(ID)のリスト項目では、別のアクティビティで行全体(IDに関連付けられている)を表示する必要があります。バンドルオブジェクトを使用して、「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);

2番目のアクティビティ:

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.putExtra("ID",value)エクストラがすでにキーと値のペアであるように、longを直接追加するだけです。次に、2番目のアクティビティで値を受け取るためのコードが機能しているはずです。

于 2012-10-30T08:56:12.017 に答える
2

これを試して。

最初のアクティビティから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
//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

これを試して。バンドルを使用せずに、値をアクティビティに直接渡すことができます。

myIntent.putExtras("ID",id);
于 2012-10-30T08:56:16.837 に答える
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 に答える
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 に答える