我正在爲我的應用程序創建一個撰寫屏幕。我有一個ScrollView
,其中包含一個RelativeView
,其中包含兩件事:用戶輸入消息的EditText
以及根據圖像是否附加到狀態來打開和關閉其可見性的ImageView
。這是我的佈局XML的一部分。如何從RelativeLayout調用onClick和onLongClick EditText
<!-- @dimen/bigGap = 8dp -->
<ScrollView android:id="@+id/parentScrollView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true"
android:layout_marginTop="@dimen/bigGap"
android:layout_marginRight="@dimen/bigGap"
android:layout_marginLeft="@dimen/bigGap"
android:layout_marginBottom="@dimen/bigGap"
android:layout_above="@+id/footer"
android:background="#006400"
> <!-- green background color -->
<RelativeLayout android:id="@+id/parentLinearLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#FFD700"> <!-- yellow background color -->
<EditText android:id="@+id/postText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#dddddd"
android:inputType="textMultiLine"
android:gravity="top|left"
/> <!-- gray background color -->
<ImageView android:id="@+id/postImage"
android:layout_width="@dimen/thumbnailSize"
android:layout_height="@dimen/thumbnailSize"
android:visibility="gone"
android:layout_below="@id/postText"
/>
</RelativeLayout>
</ScrollView>
因爲我EditText
的高度wrap_content
,整個事情開始了與灰色的背景上的黃色背景(RelativeLayout
,其完全覆蓋的綠色背景上的單一線(EditText
) ScrollView
)。不過,我稍後會將所有視圖的背景更改爲白色(以使它們看起來像是單個組件),並且與用戶只能點擊唯一一行EditText
以使鍵盤彈出向上。
我想要做的是重定向RelativeLayout
到EditText
的點擊和長按操作的點擊和長按的動作,但我下面的代碼不能正常工作。幫幫我?
final EditText editText = (EditText) findViewById(R.id.postText);
RelativeLayout rl = (RelativeLayout) findViewById(R.id.parentLinearLayout);
rl.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Logger.d("onClick invoked!");
editText.performClick();
}
});
rl.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
Logger.d("onLongClick invoked!");
return editText.performLongClick();
}
});
我在這裏的目的是使被點擊的RelativeLayout
時,鍵盤彈出,當長按,顯示剪切/複製/粘貼/文本選擇選項(如當做一個EditText
它) (與EditText
相同的行爲)。