2014-10-11 171 views
1

嘿傢伙,所以我想讓我的imagebutton工作在我的片段。該代碼工作正常與一個活動,但我不能讓它在片段內工作。我需要改變什麼?錯誤不斷髮生在configureImage方法中,謝謝你們。Android Imagebutton片段

import android.content.Intent; 
import android.os.Bundle; 
import android.support.v4.app.Fragment; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.ImageButton; 
import android.widget.Toast; 

/** 
* A simple {@link Fragment} subclass. 
* 
*/ 
public class FragmentA extends Fragment { 

    public FragmentA() { 
     // Required empty public constructor 
    } 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.fragment_a); 

     configureImageButton(); 


    } 






private void configureImageButton() { 
    // TODO Auto-generated method stub 
    ImageButton btn = (ImageButton) findViewById(R.id.imageButton1); 

    btn.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      Toast.makeText(FragmentA.this, "You Clicked the button!", Toast.LENGTH_LONG).show(); 

     } 
    }); 


} 

回答

2

你的片段實現是錯誤的。這樣做。

public class FragmentA extends Fragment { 


    private View v; 

    public FragmentA() { 
     // Required empty public constructor 
    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     v = inflater.inflate(R.layout.fragment_a,container, false); 
     configureImageButton(); 
     return v; 
    } 

    private void configureImageButton() { 
     // TODO Auto-generated method stub 
     ImageButton btn = (ImageButton) v.findViewById(R.id.imageButton1); 

     btn.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       Toast.makeText(getActivity(), "You Clicked the button!", Toast.LENGTH_LONG).show(); 

      } 
     }); 


    } 
} 
+0

謝謝堆做的伎倆。 – user3584935 2014-10-11 11:21:10

0
public class FragmentA extends Fragment { 

     public FragmentA() { 
      // Required empty public constructor 
     } 

     @Override 
     public View onCreateView(LayoutInflater inflater, ViewGroup container, 
       Bundle savedInstanceState) { 
      View view = inflater 
        .inflate(R.layout.fragment_a, container, false); 
      configureImageButton(view); 
      return view; 
     } 
     private void configureImageButton(View view) { 
     // TODO Auto-generated method stub 
     ImageButton btn = (ImageButton) view.findViewById(R.id.imageButton1); 

     btn.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       Toast.makeText(getActivity(), "You Clicked the button!", Toast.LENGTH_LONG).show(); 

      } 
     }); 


    } 
} 
0

使用這項會爲你工作,並按照本作片段。

public class FragmentA extends Fragment { 
ViewGroup rootViewA; 
    ImageButton btn; 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 
     rootViewA = (ViewGroup) inflater.inflate(
       R.layout.fragment_a, container, false); 
    btn = (ImageButton) rootViewA 
      .findViewById(R.id.imageButton1); 
    btn.setOnClickListener(new View.OnClickListener() { 

    @Override 
    public void onClick(View v) { 
     Toast.makeText(getActivity(), "You Clicked the button!", Toast.LENGTH_LONG).show(); 

     } 
    }); 
    return rootViewA; 

} 
}