私にはフラグメントがあるアクティビティAがあります。アクティビティAにユーザ入力に基づいて双方でフラグメントアクティビティのonclickイベントは機能しません
を(アクティビティAが呼び出されるデフォルト)またはその断片Bを断片化するために、この活性フラグメント変化を
私はクリックリスナー上でのボタンを有する& Bを断片。 このボタンは、アクティビティAが開始されたときに初めて動作します。
ユーザーがフラグメントを変更すると、そのフラグメント内のボタンがクリック時に反応しなくなります。
フラグメントABでボタンを作成するには、ユーザーによってフラグメントが変更されたときに行う必要があることをお勧めします。
私は、このコードによって、ユーザの入力に基づいて、断片を交換しています:
fr = new FragmentOneDice();
FragmentManager fm = getFragmentManager();
FragmentTransaction fragmentTransaction = fm.beginTransaction();
fragmentTransaction.replace(R.id.fragment_place, fr);
fragmentTransaction.commit();
フラグメント・アクティビティ・コードでは、クリックリスナーボタン上のため、このようなものです。あなたは一つのことを覚えて
import android.app.Fragment;
import android.app.FragmentManager;
import android.content.Context;
import android.content.SharedPreferences;
import android.os.Build;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageView;
import java.util.ArrayList;
import java.util.Collections;
public class FragmentOneDice extends Fragment implements View.OnClickListener {
Button button1;
View view;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
//Inflate the layout for this fragment
view = inflater.inflate(R.layout.activity_fragment_one, container, false);
button1 = (Button) view.findViewById(R.id.button_one);
button1.setOnClickListener(this);
return view;
}
@Override
public void onClick(View v) {
//MY CODE HERE
}
'this'は有効なOnClickListenerではなく、フラグメント内のonClickメソッドはフラグメント自体のonclickです。@Override パブリックボイドonClick(ビューv){/ *あなたのコード* /}}); ' – x13
なぜ、そのbutton1.setOnClickListener(this);を 'Button1.setOnClickListener(new View.OnClickListener()有効ではありません、説明してください。なぜなら、私が質問したように、onClickは、アクティビティAが初めて作成され、ユーザーがフラグメントを変更しようとしていないときに機能するからです。 onClickは、ユーザーがフラグメントを変更したときに動作を停止します。 –
@ThisNameBetterBeAvailableという点で、FragmentOneDiceはonClick()をオーバーライドしてView.OnCLickListenerを実装しています。したがって、有効なView.OnClickListenerです。 – 0X0nosugar