0

button1 をクリックすると、Button何も表示されませんToast。イベントを無効にしましたがEditText、それでも表示されません。 クラス「View1」はpagerViewの一部です。

public class View1 extends Fragment{

     ImageView album;
     Button b1;

    public View1(){}

   public void OnCreate(Bundle SavedInstanceState) {
         super.onCreate(SavedInstanceState);

                b1.findViewById(R.id.button1);

                b1.setOnClickListener(new OnClickListener(){
                        @Override
                        public void onClick(View v) {
                            Toast.makeText(getActivity().getApplicationContext(), "asdasd", Toast.LENGTH_SHORT).show();     
                        }
                    });
   }   

        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                Bundle savedInstanceState) {
            return inflater.inflate(R.layout.view1, container, false);
  }
4

2 に答える 2

4

Androidのライフサイクルチャートでを確認することをお勧めしますFragment

のコールバックでOnCreateはないため、いわゆるメソッドは呼び出されません。この種の間違いを避けるために、適切なメソッドでアノテーションを使用して、新しいメソッドを作成するだけでなく、メソッドをオーバーライドするようにしてください。onCreateFragment@Override

NullPointerExceptionメソッドが呼び出されたとしても、初期化しないためにコードがスローされます(コールバックが後に呼び出されるため、コードはButton作成されません)。コードは次のようになります。onCreateViewonCreate

public class View1 extends Fragment {

    ImageView album;
    Button b1;

    @Override  
    public void OnCreate(Bundle SavedInstanceState) {
         super.onCreate(SavedInstanceState);
    }   

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View v = inflater.inflate(R.layout.view1, container, false);
        b1 = (Button) v.findViewById(R.id.button1);
        b1.setOnClickListener(new OnClickListener(){
             @Override
             public void onClick(View v) {
                Toast.makeText(getActivity(), "asdasd", Toast.LENGTH_SHORT).show();     
             }
        });
    }
        return v;
}
于 2013-03-08T08:18:31.363 に答える
0

リスナーをonCreateViewまたはonActivityCreatedに移動できます。そうすれば、リスナーは機能するはずです。

于 2013-03-08T18:02:43.197 に答える