gpt4 book ai didi

android - ViewPager 项目布局中的 OnclickAction

转载 作者:数据小太阳 更新时间:2023-10-29 02:33:52 26 4
gpt4 key购买 nike

我想将 setOnClickListener 设置到我的 ImageView,它位于 ViewPagerItemXML 中。

在我的 activityXML 中,我有 ViewPager 和其他几个按钮。在我的 ViewPagerItemXML 中,我有可点击的 ImageView。我想在 Activity 中单击 ImageView 后执行一些操作。不幸的是,OnClickListener 根本不会触发。

LayoutInflater inflater = (LayoutInflater) this
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
itemView = inflater.inflate(R.layout.viewPager_item, null);

onThemePhotoClick= (ImageView)itemView.findViewById(R.id.themePhoto);
onThemePhotoClick.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.i(TAG,"clickOnPhoto!");
});

编辑

我的 Activity XML

LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:weightSum="10">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:orientation="vertical"
android:id="@+id/iconTools">

<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_navigate_before_black_36dp"
android:background="@android:color/transparent"
android:id="@+id/backButton"
/>
</LinearLayout>

<LinearLayout

android:layout_width="match_parent"
android:orientation="horizontal"
android:layout_height="0dp"
android:layout_weight="8"
android:id="@+id/viewPagerLayout">

<android.support.v4.view.ViewPager
android:id="@+id/visitMuseumPager"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:listitem="@layout/art_work_item" />
</LinearLayout>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:orientation="vertical"
android:id="@+id/bottomButtonToolbar">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/qrScannerButton"
android:text="QrCode" />
</LinearLayout>

</LinearLayout>

和 viewPagerItem

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:fillViewport="true">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingTop="10dp">

<RelativeLayout
android:layout_width="match_parent"
android:layout_height="200dp">
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/WelcomeScreenDarker"
android:id="@+id/imageBackground"
/>

<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:id="@+id/themePhoto"
android:clickable="true"
/>
</RelativeLayout>

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/artWorkCounter"
android:textColor="@color/searchHint"
android:textSize="12sp"
android:layout_marginRight="80dp"
android:layout_gravity="end" />

<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/artWorkDescriptionTitle"
android:paddingTop="15dp"
android:textSize="20sp"
android:textStyle="bold"
android:layout_margin="10dp"/>

<TextView

android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/artWorkDescription"
android:layout_margin="10dp"
/>
</LinearLayout>
</ScrollView>
</LinearLayout>

编辑 2我通过将 OnClickListener 添加到 viewpagerAdapterClass 来解决我的问题。它可能会触发另一个 View 。如果有人知道如何触发实际 Activity 类的按钮,请给我提示

最佳答案

View 在适配器中触发而不是在 Activity 中触发是正常的。

在您的 Activity 中膨胀的层次结构仅包含 ViewPager,它在 Adapter 的帮助下包含不同的 ViewPagerItems。

想法是您需要将该点击事件传递回 Activity 。为此,创建一个接口(interface)回调,让您的 Activity 实现它并从您的适配器调用该回调。

关于 SO 的许多问题将对您有所帮助。 Call Activity method from adapter

关于android - ViewPager 项目布局中的 OnclickAction,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39895725/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com