我是一个应用程序开发的初学者,我想问一个问题,我尽了最大努力在谷歌得到答案,但我失败了。所以,
在我的应用程序(java)中,我使用了太多的文本字段:
<com.google.android.material.textfield.TextInputLayout
android:layout_marginBottom="20dp"
android:id="@+id/start_date_Layout"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="20dp"
app:helperText="Start Date"
app:endIconMode="custom"
app:endIconDrawable="@drawable/ic_date"
>
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/start_date"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="dd/mm/yy"
/>
</com.google.android.material.textfield.TextInputLayout>
我在我的结束图标中添加了一个侦听器,如下所示:
this.startDateLayout = v.findViewById(R.id.start_date_Layout);
this.startDateLayout.setEndIconOnClickListener(this);
我的问题是,当我尝试获取用户单击的视图时:
@Override
public void onClick(View v) {
if (v.getParent() == this.startDateLayout){
Toast.makeText(this.context, "click", Toast.LENGTH_LONG).show();
}
}
吐司从来没有出现,如果条件从来都不是真的,我的问题是,我如何才能得到的看法,在witch的用户点击。谢谢你的阅读,我希望我已经尽可能清楚了。
5条答案
按热度按时间jq6vz3qz1#
只需使用:
hmae6n7t2#
如果使用的是edittext,请尝试将onfocuschangelistner设置为edittext,而不是onclicklistner。
2guxujil3#
我只做以下工作:
当您显式设置listener on end图标时,您不必担心验证viewid。
cnwbcb6i4#
首先,我在上面的代码中注意到,您正在尝试侦听视图上的click事件
一个简单的方法是将onclick()方法更改为
我相信我能帮上忙
4c8rllxm5#
问题很简单,你可以用一个fragmelayout或linearlayout,edittext和一个imageview来实现这个解决方案,它将类似于textinputeditext,但是你将对视图层次结构有更多的控制,让我来告诉你如何实现它,为了简单起见,因为你是一个初学者,我将使用线性布局
创建
FrameLayout
或者LinearLayout
然后创建一个EditText
像这样的图像视图xml格式:
java