2017-06-11 3 views
0

Hallo ich möchte onClick Option in einem Fragment zu einem ImageView hinzufügen. Ich habe ein paar Dinge versucht, aber gescheitert. Hier ist meine Fragmet.javaSo fügen Sie onClick in Fragment hinzu

public class Info Fragment erstreckt {

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

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

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    // Inflate the layout for this fragment 

    return inflater.inflate(R.layout.info, container, false); 
} 

}

Antwort

1

Aufschalten

@Override 
    public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { 

und verwenden Sie die view-Objekt, das die gleiche View Sie ist sind Zurückgeben in onCreateView, um nach dem ImageView zu suchen, auf dem Sie Ihrefestlegen möchten. Z.B.

@Override 
    public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { 
     View imageView = view.findViewById(R.id.id_of_image_view); 
     imageView.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

     } 
    }); 
    } 
0

Statt den Blick direkt von der Rückkehr, dies tun

View v=inflater.inflate(R.layout.info, container, false); 

Sie dann v verwenden können Verweis auf Ihre ImageViews

ImageView iv=(ImageView)v.findViewById(R.id.imageview_id); 

dann eingestellt finden OnClickListener wie gewohnt

iv.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      //do something 
     } 
    }); 
0

Sie haben eine ImageView im layout R.layout.info. haben Wenn die ImageView ‚s id ist ivInLayout, setzen Sie ein onClik Mehtod wie folgt aus:

public class Info extends Fragment{ 

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

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

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
     // Inflate the layout for this fragment 
     View v = inflater.inflate(R.layout.info, container, false); 

     ImageView iv = (ImageView) v.findViwById(R.id.ivInLayout); 
     iv.setOnClickListener(new View.OnClickListener(){ 
      @Override 
      public void onClick(){ 
       <What you want onClick on the image to do> 
      } 
     }); 
     return v; 
    } 

} 
Verwandte Themen