フラグメントとアクティビティの間でデータを渡そうとしていますが、できません。エラーや例外は発生しません。私の断片には価値があるという価値観があります。私はインターフェイスを使用しています。Android:フラグメントとアクティビティ間のデータ
HoroscopeのコードChoice Fragment、ボタンを含むフラグメントです。各ボタンには値があります。値を押すたびにアクティビティに渡したい値です。活動の
(...)
static OnInfoChangedListener mCallback;
public HoroscopeChoice() {}
/******************************
* Callback
********/
public static void OnInfoChangedListener(OnInfoChangedListener callback) {
mCallback = callback;
}
public interface OnInfoChangedListener {
public void onInfoChanged(String horosocopo);
}
public View onCreateView(final LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_horoscope_choice,
container, false);
Button aquarius;
aquarius = (Button) view.findViewById(R.id.aquarius1);
final int id = view.getId();
View.OnClickListener onClickListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
String horoscopo = onClick2(v.getId());
Log.d("HoroscopeChoice", "push button->"+horoscopo);
mCallback.onInfoChanged(horoscopo);
}
};
aquarius.setOnClickListener(onClickListener);
public String onClick2(int id)
{
String horoscopo="";
if (id == R.id.aquarius1) {
horoscopo = "Aquarius";
}
}
(...)
コード:
(...)
public void onInfoChanged(String horoscopo) {
Log.d("SchedulerActivity","OnInfoChanged na Scheduler->"+horoscope);
mHoroscopeDisplay = (TextView) findViewById(R.id.dailyHoroscope4);
mHoroscopeDisplay.setText(horoscopo);
}
私は断片でLog.dを行うと、私は価値がない活動で、値を取得します。誰が何が間違っているか知っていますか?
1. 'mCallback'はどのように設定されていますか? 2.問題は 'onClick2()'メソッドの中にあるかもしれません。そこには何がありますか? – Karakuri
@Karakuri私はここにそれを置くことを忘れてしまったが、追加した。私がコード上にあるLog.d()を印刷すると、Fragmentでは有効な値が得られますが、アクティビティには何も表示されません。 – porthfind
'mCallback'がどこに割り当てられているのかを追加していません。 _declared_を追加しただけです。私は 'mCallback = {something}' – Karakuri