我怎么知道点击了哪个视图

时间:2017-10-15 18:06:55

标签: android onclick

我需要你帮助知道如何捕捉被点击的视图并执行某些操作,我有一些文本视图我想在单击它们时调用一个方法。 我的代码,我试图使用开关和案例,但没有工作,如果我使用de视图工作的名称,但在这种情况下,我将不得不创建一个onclick到每个视图,这不是我想要的:

public class PerfilFragment extends Fragment {

//Firebabse
private DatabaseReference firebase;
private FirebaseAuth usuario_autenticado;
private ValueEventListener valueEventListenerContatos;

//Usuario
private Preferencias preferencias;
private String identificador_usuario_logado;
private Usuario usuario_recuperado;

//Recuperando os componentes
private TextView nome;
private TextView username;
private TextView email;
private TextView senha;
private TextView assinatura;
private String tipo_assinatura;

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


@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {

    //Setando o ID dos campos
    View view = inflater.inflate(R.layout.fragment_perfil, container, false);
    nome = view.findViewById(R.id.perfil_nome);
    username = view.findViewById(R.id.perfil_username);
    email = view.findViewById(R.id.perfil_email);
    senha = view.findViewById(R.id.perfil_senha);
    assinatura = view.findViewById(R.id.perfil_assinatura);

    //Buscando os dados no Firebase
    usuario_autenticado = ConexaoFirebase.getFirebaseAutenticacao();
    preferencias = new Preferencias(getActivity());
    identificador_usuario_logado = preferencias.getIdentificador();
    firebase = ConexaoFirebase.getFirebase().child("usuarios").child(identificador_usuario_logado);

    valueEventListenerContatos = new ValueEventListener() {

        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            if(dataSnapshot != null) {
                usuario_recuperado = dataSnapshot.getValue(Usuario.class);
                nome.setText( usuario_recuperado.getNome());
                username.setText("Usuário: " + usuario_recuperado.getUsername());
                email.setText("E-Mail: " + usuario_recuperado.getEmail());
                senha.setText("Senha: ******");

                if(usuario_recuperado.getAssinatura() == 1){
                    tipo_assinatura = "Administrador";
                }else if(usuario_recuperado.getAssinatura() == 2) {
                    tipo_assinatura = "Assinante";
                }else if(usuario_recuperado.getAssinatura() == 3) {
                    tipo_assinatura = "Grátis";
                }

                assinatura.setText("Tipo de Usuário: " + tipo_assinatura);


            }else {
                Toast.makeText(getContext(), "Não foi Possível Obter os Dados do Perfil!", Toast.LENGTH_SHORT).show();
            }

        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    };

    view.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            switch (view.getId()){
                case R.id.perfil_nome:
                    Toast.makeText(getContext(), "Nome Clicado", Toast.LENGTH_SHORT).show();
                    atualizarNome();
                    break;
            }
        }
    });

    return view;
}

//Metodos que atualizam os dados do usuario
private void atualizarNome(){
    AlertDialog.Builder alertDialog = new AlertDialog.Builder(getActivity());
    alertDialog.setTitle("Atualizar Nome de Usuário");
    alertDialog.setMessage("Digite o seu Nome: ");
    alertDialog.setCancelable(false);

}

@Override
public void onStart() {
    super.onStart();
    firebase.addValueEventListener(valueEventListenerContatos);
}

@Override
public void onStop() {
    super.onStop();
    firebase.removeEventListener(valueEventListenerContatos);
}
}

我的XML:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="br.com.cifrasemusica.cifrasmusica_teoriamusical.fragment.PerfilFragment">

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:padding="5dp"
    android:divider="?android:attr/dividerHorizontal"
    android:showDividers="middle">

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:padding="5dp">

    <ImageView
        android:id="@+id/perfil_foto"
        android:layout_width="@dimen/foto_perfil_largura"
        android:layout_height="@dimen/foto_perfil_altura"
        app:srcCompat="@drawable/user" />

    <TextView
        android:id="@+id/perfil_nome"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center_vertical"
        android:layout_marginLeft="10dp"
        android:clickable="true"/>

</LinearLayout>

    <TextView
        android:id="@+id/perfil_username"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:gravity="center_vertical"
        android:padding="5dp" />

    <TextView
        android:id="@+id/perfil_email"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:gravity="center_vertical"
        android:padding="5dp"/>

    <TextView
        android:id="@+id/perfil_senha"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:gravity="center_vertical"
        android:padding="5dp"/>

    <TextView
        android:id="@+id/perfil_assinatura"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:gravity="center_vertical"
        android:padding="5dp"/>

    <ListView
        android:id="@+id/lv_perfil"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:divider="#CCCCCC"
        android:dividerHeight="1dp"
        android:layout_below="@+id/perfil_foto" />

0 个答案:

没有答案