我需要你帮助知道如何捕捉被点击的视图并执行某些操作,我有一些文本视图我想在单击它们时调用一个方法。 我的代码,我试图使用开关和案例,但没有工作,如果我使用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" />