2016-03-20 123 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); 
} 
相关问题