Как установить прослушиватель кликов в LinearLoyout ImageView - PullRequest
0 голосов
/ 05 июня 2019

Я не могу обработать Listnerer на ImageView inisde LinearLayout Я пытался andorid:clickable andorid:focusable

onTouchListener

изменить тип на AppCompactImageView

я не знаю, есть ли проблема с фрагментом или другим, но я ничего не могу сделать.

вот мой код Loyout

<ScrollView
....
<LinearLayout
....
        <LinearLayout
            android:paddingTop="15dp"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:orientation="horizontal">

            <ImageView
                android:id="@+id/mail_icon_about"
                android:layout_width="50dp"
                android:layout_height="50dp"
                android:layout_gravity="center"
                android:contentDescription="@string/ikona_maila"
                app:srcCompat="@drawable/ic_mail"
                tools:srcCompat="@drawable/ic_mail" />

            <ImageView
                android:id="@+id/facebook_icon_about"
                android:layout_width="60dp"
                android:layout_height="60dp"
                android:layout_gravity="center"
                android:layout_marginStart="16dp"
                android:contentDescription="@string/ikona_facebook"
                app:srcCompat="@drawable/ic_facebook"
                tools:srcCompat="@drawable/ic_facebook" />

            <ImageView
                android:layout_marginStart="16dp"
                android:id="@+id/website_icon_about"
                android:layout_width="50dp"
                android:layout_height="50dp"
                android:contentDescription="@string/ikona_website"
                app:srcCompat="@drawable/ic_website"
                tools:srcCompat="@drawable/ic_website" />

        </LinearLayout>
</LinearLayout>


</ScrollView>

вот мойкод (это фрагмент): P

    public class AboutFragment extends Fragment implements View.OnClickListener {

    ImageView mailImage;
    ImageView faceBookImage;
    ImageView webSiteImage;


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

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

        mailImage=view.findViewById(R.id.mail_icon_about);
        faceBookImage=view.findViewById(R.id.facebook_icon_about);
        webSiteImage=view.findViewById(R.id.website_icon_about);

        mailImage.setOnClickListener(this);
        faceBookImage.setOnClickListener(this);
        webSiteImage.setOnClickListener(this);

        return view;
    }


    @Override
    public void onClick(View view) {
        switch (view.getId()) {
            case R.id.mail_icon_about:
                Toast.makeText(getContext(), "1", Toast.LENGTH_SHORT).show();
                Log.e("About","1");
                break;
            case R.id.facebook_icon_about:
                Toast.makeText(getActivity(), "2", Toast.LENGTH_SHORT).show();
                Log.e("About","2");
                break;
            case R.id.website_icon_about:
                Toast.makeText(getActivity(), "3", Toast.LENGTH_SHORT).show();
                Log.e("About","3");
                break;
        }

    }

Ответы [ 2 ]

0 голосов
/ 05 июня 2019

В файле Activity.java со ссылкой на этот файл XML создайте ImageView:

ImageView imageview = findViewById(R.id.idofyourimageview);

Затем установите прослушиватель щелчков:

imageview.setOnClickListener(new View.onClickListener(){
     @Override
     public void onClick(View v){
          //your code
     }
});
0 голосов
/ 05 июня 2019

Попробуйте использовать ImageButton вместо ImageView

...