如何使android的相对布局可点击的每一个内容 [英] How to make every content of a Relative Layout clickable in android

查看:174
本文介绍了如何使android的相对布局可点击的每一个内容的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个布局:

\r
\r

< RelativeLayout的\r
        机器人:layout_width =match_parent\r
        机器人:layout_height =227dp\r
        机器人:addStatesFromChildren =真\r
        机器人:可点击=真\r
        机器人:duplicateParentState =假\r
        机器人:可聚焦=真\r
        机器人:ID =@ + ID / relLay>\r
\r
        <画廊\r
            机器人:ID =@ + ID / gvImage\r
            机器人:layout_height =200dp\r
            机器人:layout_width =match_parent\r
            机器人:paddingRight =5DP\r
            机器人:paddingLeft =5DP\r
            机器人:fadingEdgeLength =2DP\r
            机器人:可点击=真/>\r
\r
\r
    <的TextView\r
        机器人:可点击=真\r
        机器人:ID =@ + ID / myImageViewText\r
        机器人:layout_width =WRAP_CONTENT\r
        机器人:layout_height =WRAP_CONTENT\r
        机器人:layout_alignLeft =@ + ID / gvImage\r
        机器人:layout_alignTop =@ + ID / gvImage\r
        机器人:layout_alignRight =@ + ID / gvImage\r
        机器人:比重=中心\r
        机器人:文字= SOMETHING\r
        机器人:textAppearance =@安卓风格/ TextAppearance.Large\r
        机器人:文字样式=大胆\r
        机器人:文字颜色=#FF0000\r
        机器人:layout_marginLeft =1DP\r
        机器人:layout_marginRight =1DP\r
        机器人:layout_marginTop =1DP\r
        机器人:layout_alignParentBottom =真/>\r
\r
        <切换按钮\r
            机器人:layout_width =WRAP_CONTENT\r
            机器人:layout_height =WRAP_CONTENT\r
            机器人:ID =@ + ID /切换按钮\r
            机器人:layout_marginTop =20dp\r
            机器人:layout_marginRight =20dp\r
            机器人:layout_alignParentTop =真\r
            机器人:layout_alignParentRight =真\r
            机器人:layout_alignParentEnd =真\r
            机器人:纹元=\r
            机器人:textOff =\r
            机器人:drawableTop =@绘制/ favorite_check\r
            机器人:比重=中心\r
            机器人:背景=@空/>\r
\r
        <的TextView\r
            机器人:背景=#CCCCCC\r
            机器人:layout_width =WRAP_CONTENT\r
            机器人:layout_height =WRAP_CONTENT\r
            机器人:文字=率:?\r
            机器人:文字颜色=#FF0000\r
            机器人:文字样式=大胆\r
            机器人:TEXTSIZE =20dp\r
            机器人:ID =@ + ID / textView2\r
            机器人:layout_alignBottom =@ + ID / gvImage\r
            机器人:layout_alignParentLeft =真\r
            机器人:layout_alignParentStart =真/>\r
\r
\r
    < / RelativeLayout的>

\r

\r
\r

和它是由一个片段类调用

\r
\r

公开查看onCreateView(LayoutInflater充气器,容器的ViewGroup,捆绑savedInstanceState){\r
        查看查看= inflater.inflate(R.layout.search_result,集装箱,FALSE);\r
        画廊画廊=(图库论坛)view.findViewById(R.id.gvImage);\r
        gallery.setAdapter(新ImageAdapter(getActivity()getApplicationContext())。);\r
\r
        \r
        返回视图。\r
    }

\r

\r
\r

我想要做这样的事情,如果我点击任何项目的XML的RelativeLayout的内部文件,它会做这样的事情,会去另一个类或吐司文本。
我如何才能做到这一点?


解决方案

实现OnClickListener给每一位观。

最简单的方法将是

 <的TextView
            机器人:背景=#CCCCCC
            机器人:layout_width =WRAP_CONTENT
            机器人:layout_height =WRAP_CONTENT
            机器人:文字=率:?
            机器人:文字颜色=#FF0000
            机器人:文字样式=大胆
            机器人:TEXTSIZE =20dp
            机器人:ID =@ + ID / textView2
            机器人:layout_alignBottom =@ + ID / gvImage
            机器人:layout_alignParentLeft =真
            机器人:layout_alignParentStart =真
            的onclick =executeTextViewClick/>

而在Java类中声明的函数如下:

 公共无效executeTextViewClick(查看视图){//这里吐司或导航到其他活动}

I have a layout:

<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>

And it is called by a fragment 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;
    }

I want to do something like, if I click any item inside of RelativeLayout of that xml file it will do something like, will go to another class or Toast text. How will I do this?

解决方案

Implement onClickListener to each and every View.

Simplest way will be

<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" />

And in java class declare a function as follows.

public void executeTextViewClick(View view){

//Toast here or navigate to other activity 

}

这篇关于如何使android的相对布局可点击的每一个内容的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆