2015-11-10 2 views
-2

Я хочу отправить значение в onFinishEditDialog, но я не знаю, как это сделать. Пожалуйста, помогите мне или у вас есть другой метод.Что мне делать или вместо этого getActivity()

public String strhashtag; 
public interface EditNameDialogListener { 
    void onFinishEditDialog(String inputText); 
} 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.hashtaglayout); 
    Intent hashtag = getIntent(); 
    strhashtag = hashtag.getStringExtra("hashtag"); 

    Button btnendhashtag = (Button) findViewById(R.id.btnendhashtag); 


    btnendhashtag.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      EditNameDialogListener activity = (EditNameDialogListener) getActivity(); 
      activity.onFinishEditDialog(strhashtag); 
      finish(); 
     } 
    }); 

} 
+0

Неправильно getActivity(); не может использовать –

+0

Какая ошибка? –

+1

Этот код находится внутри класса «Фрагмент» или «Активность»? 'setContentView()' и 'finish()' подразумевает 'Activity', но' getActivity() 'подразумевает класс« Fragment » – PPartisan

ответ

0

Добавить EventBus GreenRobot к Gradle так:

compile 'de.greenrobot:eventbus:2.4.0' 

Затем в деятельности EditNameDialogListener, экземпляр экземпляр этого

private EventBus bus; 

onCreate { 

    bus = EventBus.getDefault(); 
    bus.register(this); 
} 

onDestroy { 

    bus.unregister(this); 

} 

Создать класс FinishEditDialog

public class FinishEventDialog() { 
    // COnstructor, getters and setters for custom data you want to send over 
} 

В деятельности EditNameDialogListener обеспечивает этот метод:

public void onEvent(FinishEditDialogEvent event) { 
    // do whatever you want here, extract data from the event 
} 

в своей текущей деятельности, публиковать события всех зарегистрированных слушателей:

onClick { 

    EventBus.getDefault().post(new FinishEditDialogEvent()); 
} 
+0

Не работает –

+0

Как это не работает –

Смежные вопросы