2016-03-20 2 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); 
} 

Эта функция находится внутри класса, который расширяет фрагмент. Здесь вся последняя строка startActivity (...) указывается в красном и говорит:

startActivity (android.content.intent, android.os.Bundle) в Фрагмент не может быть применен к (андроида. support.v4.app.FragmentActivity, java.lang.Class)

Так как передать данные из фрагмента в активность?

+3

Я думаю, что вы имеете в виду 'startActivity (новый Intent (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); 
} 
Смежные вопросы