如何在 android 中使 Relative Layout 的每个内容都可点击
How to make every content of a Relative Layout clickable in android
我有一个布局:
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="227dp"
android:addStatesFromChildren="true"
android:clickable="true"
android:duplicateParentState="false"
android:focusable="true"
android:id ="@+id/relLay">
<Gallery
android:id = "@+id/gvImage"
android:layout_height="200dp"
android:layout_width="match_parent"
android:paddingRight="5dp"
android:paddingLeft="5dp"
android:fadingEdgeLength="2dp"
android:clickable="true"/>
<TextView
android:clickable="true"
android:id="@+id/myImageViewText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/gvImage"
android:layout_alignTop="@+id/gvImage"
android:layout_alignRight="@+id/gvImage"
android:gravity="center"
android:text=SOMETHING"
android:textAppearance="@android:style/TextAppearance.Large"
android:textStyle="bold"
android:textColor="#FF0000"
android:layout_marginLeft="1dp"
android:layout_marginRight="1dp"
android:layout_marginTop="1dp"
android:layout_alignParentBottom="true" />
<ToggleButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/toggleButton"
android:layout_marginTop="20dp"
android:layout_marginRight="20dp"
android:layout_alignParentTop="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:textOn=""
android:textOff=""
android:drawableTop="@drawable/favorite_check"
android:gravity="center"
android:background="@null"/>
<TextView
android:background="#CCCCCC"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Rate: ?"
android:textColor="#FF0000"
android:textStyle="bold"
android:textSize="20dp"
android:id="@+id/textView2"
android:layout_alignBottom="@+id/gvImage"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
</RelativeLayout>
它被片段调用 class,
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.search_result, container, false);
Gallery gallery = (Gallery)view.findViewById(R.id.gvImage);
gallery.setAdapter(new ImageAdapter(getActivity().getApplicationContext()));
return view;
}
我想做类似的事情,如果我单击那个 xml 文件的 RelativeLayout 内的任何项目,它会做类似的事情,将转到另一个 class 或 Toast 文本。
我该怎么做?
对每个视图实施 onClickListener。
最简单的方法是
<TextView
android:background="#CCCCCC"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Rate: ?"
android:textColor="#FF0000"
android:textStyle="bold"
android:textSize="20dp"
android:id="@+id/textView2"
android:layout_alignBottom="@+id/gvImage"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
onclick="executeTextViewClick" />
并在javaclass中声明一个函数如下。
public void executeTextViewClick(View view){
//Toast here or navigate to other activity
}
我有一个布局:
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="227dp"
android:addStatesFromChildren="true"
android:clickable="true"
android:duplicateParentState="false"
android:focusable="true"
android:id ="@+id/relLay">
<Gallery
android:id = "@+id/gvImage"
android:layout_height="200dp"
android:layout_width="match_parent"
android:paddingRight="5dp"
android:paddingLeft="5dp"
android:fadingEdgeLength="2dp"
android:clickable="true"/>
<TextView
android:clickable="true"
android:id="@+id/myImageViewText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/gvImage"
android:layout_alignTop="@+id/gvImage"
android:layout_alignRight="@+id/gvImage"
android:gravity="center"
android:text=SOMETHING"
android:textAppearance="@android:style/TextAppearance.Large"
android:textStyle="bold"
android:textColor="#FF0000"
android:layout_marginLeft="1dp"
android:layout_marginRight="1dp"
android:layout_marginTop="1dp"
android:layout_alignParentBottom="true" />
<ToggleButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/toggleButton"
android:layout_marginTop="20dp"
android:layout_marginRight="20dp"
android:layout_alignParentTop="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:textOn=""
android:textOff=""
android:drawableTop="@drawable/favorite_check"
android:gravity="center"
android:background="@null"/>
<TextView
android:background="#CCCCCC"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Rate: ?"
android:textColor="#FF0000"
android:textStyle="bold"
android:textSize="20dp"
android:id="@+id/textView2"
android:layout_alignBottom="@+id/gvImage"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
</RelativeLayout>
它被片段调用 class,
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.search_result, container, false);
Gallery gallery = (Gallery)view.findViewById(R.id.gvImage);
gallery.setAdapter(new ImageAdapter(getActivity().getApplicationContext()));
return view;
}
我想做类似的事情,如果我单击那个 xml 文件的 RelativeLayout 内的任何项目,它会做类似的事情,将转到另一个 class 或 Toast 文本。 我该怎么做?
对每个视图实施 onClickListener。
最简单的方法是
<TextView
android:background="#CCCCCC"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Rate: ?"
android:textColor="#FF0000"
android:textStyle="bold"
android:textSize="20dp"
android:id="@+id/textView2"
android:layout_alignBottom="@+id/gvImage"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
onclick="executeTextViewClick" />
并在javaclass中声明一个函数如下。
public void executeTextViewClick(View view){
//Toast here or navigate to other activity
}