2016-03-20 115 views
0

我希望從一個片段發送數據到一個活動,但我目前的代碼不起作用。如何將數據從片段發送到活動?

@Override 
public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 

    Intent intent = new Intent(); 
    Context ctx = getActivity(); 
    DBoperations db = new DBoperations(ctx); 
    Cursor cr = db.getInfo(db); 
    cr.moveToFirst(); 
    long count = id; 
    while(count > 0){ 
     cr.moveToNext(); 
     count --; 
    } 
    String ID = Integer.toString(cr.getInt(0)); 
    String Name = cr.getString(1); 
    intent.putExtra("extra",ID + " " + Name); 
    startActivity(getActivity(),LocationInfo.class); 
} 

此函數位於擴展Fragment的類中。 在這裏,整個最後一行startActivity(...)紅色下劃線,並說:在片段

startActivity(android.content.intent,android.os.Bundle)不能應用於 (機器人。 support.v4.app.FragmentActivity,java.lang.Class)

那麼如何將數據從片段傳遞到活動?

+3

我想你的意思'startActivity(新意圖(getActivity() ,LocationInfo.class))' – fRoStBiT

+0

是,只有行 – PKBEST

+0

使用fRoStBiT的評論。你沒有寫新的意圖 –

回答

1

我沒有寫

startActivity(new Intent(getActivity(),LocationInfo.class)); 

這是唯一的問題...

+0

是的,你是開始活動(打電話的意圖),但是在使用它之前你並沒有創建意圖,這就是問題所在!很高興你自己解決它 – Deepanshu

0

試試這個:

@Override 
public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 

    Intent intent = new Intent(getActivity(), LocationInfo.class); 
    Context ctx = getActivity(); 
    DBoperations db = new DBoperations(ctx); 
    Cursor cr = db.getInfo(db); 
    cr.moveToFirst(); 
    long count = id; 
    while(count > 0){ 
     cr.moveToNext(); 
     count --; 
    } 
    String ID = Integer.toString(cr.getInt(0)); 
    String Name = cr.getString(1); 
    intent.putExtra("extra",ID + " " + Name); 
    startActivity(intent); 
} 
相關問題