Ajuda com click FloatingActionButton
Bom estou iniciando em android, e cheguei até o ponto onde quero implementar um FloatingActionButton , que ao clicar neste botão eu seja direcionado a uma nova activity de cadastro por exemplo.
Eu tenho estudado e desenvolvido com fragmentos que possuem seu adapter e gero a lista de dados com recyclerView, ok o contexto é este.
Agora eu queria saber onde coloco e como implemento que este meu FloatingActionButton ao clicar nele eu seja direcionado a outra activity
Vou deixar aqui meu codigo das intereções e em maiusculo o que foz pro botão floating, não sei se é o local certo para fazer esta chamado, pois fiquei confuso com o que li e estudei sobre o assunto.
Meu ADAPTER
public class TimelineAdapterImagens extends RecyclerView.Adapter<TimelineAdapterImagens.TimelinesHolder> {
List<Timeline> listaTimelineImg;
private View.OnClickListener listener;
Button btnDetails, btnEditar;
//AQUI ESTOU CRIANDO O BOTAO
private android.support.design.widget.FloatingActionButton fab;
public TimelineAdapterImagens(List<Timeline> listaTimelineImg) {
this.listaTimelineImg = listaTimelineImg;
}
@NonNull
@Override
public TimelineAdapterImagens.TimelinesHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View vista = LayoutInflater.from(parent.getContext()).inflate(R.layout.fragment_timeline_item_timeline,parent,false);
return new TimelineAdapterImagens.TimelinesHolder(vista);
//AQUI EU ENTENDI QUE TERIA A INSTANCIA DO BOTAO PARA O CLICK LOGO ABAIXO
fab = (android.support.design.widget.FloatingActionButton) getActivity().findViewById(R.id.pink_icon);
}
@Override
public void onBindViewHolder(@NonNull TimelineAdapterImagens.TimelinesHolder holder, int position) {
holder.nomeUsuario.setText(listaTimelineImg.get(position).getNomeUsuario().toString());
holder.textoPostagem.setText(listaTimelineImg.get(position).getTextoPostagem().toString());
holder.idQuantLikes.setText(listaTimelineImg.get(position).getQuantLikes().toString()+" curtiram");
holder.dataPostagem.setText(listaTimelineImg.get(position).getDataPostagem().toString());
if(listaTimelineImg.get(position).getImagem() != null){
holder.idImagem.setImageBitmap(listaTimelineImg.get(position).getImagem());
}else{
holder.idImagem.setImageResource(R.drawable.sem_foto);
}
holder.setOnClickListeners();
}
@Override
public int getItemCount() {
return listaTimelineImg.size();
}
public class TimelinesHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
TextView codigoPostagem,nomeUsuario,textoPostagem,idQuantLikes,dataPostagem ;
ImageView idImagem;
Button btnDetails,btnEditar;
Context context;
public TimelinesHolder(View itemView) {
super(itemView);
context = itemView.getContext();
nomeUsuario = (TextView) itemView.findViewById(R.id.nomeUsuario);
textoPostagem = (TextView) itemView.findViewById(R.id.textoPostagem);
idQuantLikes = (TextView) itemView.findViewById(R.id.idQuantLikes);
dataPostagem = (TextView) itemView.findViewById(R.id.dataPostagem);
idImagem = itemView.findViewById(R.id.idImagem);
}
// AQUI FIZ UM TESTE PARA VER SE AO CLICAR RECEBIA UMA MENSAGEM UE FOI CLICADO PARA SABER SE JA PODERIA IMPLEMENTAR A CHAMADA DE UMA OUTRA ACTIVITY
@Override
public void onClick(View v) {
Toast.makeText(context,"oioiio",Toast.LENGTH_SHORT).show();
}
public void setOnClickListeners() {
}
}
}
**MINHA ACTIVITY FRAG**
public static fragmentoGeraListaTimeline newInstance(String param1, String param2) {
fragmentoGeraListaTimeline fragment = new fragmentoGeraListaTimeline();
Bundle args = new Bundle();
args.putString(ARG_PARAM1, param1);
args.putString(ARG_PARAM2, param2);
fragment.setArguments(args);
return fragment;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments() != null) {
mParam1 = getArguments().getString(ARG_PARAM1);
mParam2 = getArguments().getString(ARG_PARAM2);
}
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View vista = inflater.inflate(R.layout.activity_main_time, container, false);
listaTimeline=new ArrayList<>();
recyclerTimeline= (RecyclerView) vista.findViewById(R.id.recyclerviewtime);
recyclerTimeline.setLayoutManager(new LinearLayoutManager(this.getContext()));
recyclerTimeline.setHasFixedSize(true);
request= Volley.newRequestQueue(getContext());
carregarWEBService();
return vista;
}
private void carregarWEBService() {
// FAÇO A BUSCA DOS MEUS DADOS PARA LISTAR NO RECYCLER - TUDO OK ATE AQUI
jsonObjectReq = new JsonObjectRequest(Request.Method.GET, url, null, this, this);
request.add(jsonObjectReq);
}
// TODO: Rename method, update argument and hook method into UI event
public void onButtonPressed(Uri uri) {
if (mListener != null) {
mListener.onFragmentInteraction(uri);
}
}
@Override
public void onAttach(Context context) {
super.onAttach(context);
if (context instanceof fragmentoGeraListaTimeline.OnFragmentInteractionListener) {
mListener = (fragmentoGeraListaTimeline.OnFragmentInteractionListener) context;
} else {
throw new RuntimeException(context.toString()
+ " must implement OnFragmentInteractionListener");
}
}
@Override
public void onDetach() {
super.onDetach();
mListener = null;
}
@Override
public void onErrorResponse(VolleyError error) {
progresso.hide();
Toast.makeText(getContext(), "Não foi possível listar " +error.toString() , Toast.LENGTH_SHORT).show();
Log.i("ERROR", error.toString());
}
@Override
public void onResponse(JSONObject response) {
progresso.hide();
Timeline timeline = null;
JSONArray json = response.optJSONArray("timelineImg");
try {
for(int i=0; i<json.length();i++){
timeline = new Timeline();
JSONObject jsonObject = null;
jsonObject = json.getJSONObject(i);
// AQUI O RETORNO DO MEU OBJETO JSON - TUDO CERTO FUNCIONANDO
listaTimeline.add(timeline);
}
progresso.hide();
TimelineAdapterImagens adapter = new TimelineAdapterImagens(listaTimeline);
recyclerTimeline.setAdapter(adapter);
}catch (JSONException e){
e.printStackTrace();
progresso.hide();
Toast.makeText(getContext(), "Não foi possível listar os dados " +response , Toast.LENGTH_SHORT).show();
}
}
public interface OnFragmentInteractionListener {
// TODO: Update argument type and name
void onFragmentInteraction(Uri uri);
}
Agora não sei se a chamada é no meu adapter e se esta no local correto ou se é no meu fragmento :(Discussão (0)
Carregando comentários...