相关疑难解决方法(0)

如何将视图的onClick事件传递给Android上的父项?

我在布局中有一个TextView,背景是一个选择器.TextView的文本设置为从HTML跨越.然后我用LinkMovementMethod设置TextView.

现在,当我点击TextView时,click事件不会发送到其父布局以触发选择器.

该如何解决?

events android onclick textview

94
推荐指数
6
解决办法
10万
查看次数

使用Android检测长按

我目前正在使用

onTouchEvent(MotionEvent event){
}
Run Code Online (Sandbox Code Playgroud)

检测用户何时按下我的glSurfaceView是否有办法检测何时进行长按.我猜我是否在开发文档中找不到多少,那么它将是某种方法的工作.类似于注册ACTION_DOWN并查看ACTION_UP之前的时间.

你如何使用opengl-es检测android上的长按?

java android touchscreen long-click

70
推荐指数
3
解决办法
10万
查看次数

在带有子级的LinearLayout上没有触发onClick

我有一个带有较小TextView子项的自定义LinearLayout.我希望能够单击TextView未覆盖的区域,因此我将clickable = true和onclicklistener设置为LinearLayout,但不会触发onClick.如果我在TextView上设置onclick监听器,它按预期工作...

有人可以帮忙吗?

ar_item.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/ar_item" android:layout_width="202dp"
    android:layout_height="62dp" android:background="@drawable/bg_item_ar"
    android:clickable="true">

    <TextView android:id="@+id/ar_item_txt"
        android:layout_width="164dp" android:layout_height="fill_parent"
        android:paddingBottom="8dp" android:paddingLeft="8dp"
        android:paddingTop="8dp" android:paddingRight="6dp" android:gravity="center"
        android:background="#50000000" />

</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

我的自定义LinearLayout

public class ARView extends LinearLayout
{    

    public ARView(final Context context, String name, String id)
    {        
        super(context);  
        getLayoutInflater().inflate(R.layout.ar_item, this ,true);
        LayoutInflater inflater = (LayoutInflater)   getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
        inflater.inflate(R.layout.ar_item, null);

        TextView textView = (TextView) findViewById(R.id.ar_item_txt);
        textView.setText(name);

        setOnClickListener(new View.OnClickListener()
        {
            public void onClick(View v)
            {                   
                Toast t = Toast.makeText(context, "hey!", Toast.LENGTH_SHORT);
                t.show();
            }
        });
    }
}
Run Code Online (Sandbox Code Playgroud)

android onclick android-linearlayout

58
推荐指数
5
解决办法
5万
查看次数

如何让click事件传递给android中的容器?

我有一个表格,FrameLayout其中每个框架包含一个ImageView或一个TextView.无论帧中的内容如何,​​我都希望onClick通过OnClickListener帧上的集合检测事件.

我怎样才能做到这一点?

这是我的一些布局,我总共有5行(这里只显示1行).如上所述,每行有5个FrameLayouts,每个包含一个TextView.我无法将OnClickListener放在TextView上,因为这可能会在运行时更改为ImageView.因此我想在FrameLayout上使用OnClickListener.

似乎FrameLayout的内容阻止它检测到click事件.

    <TableLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:id="@+id/gateContainer"
        android:stretchColumns="*">

        <TableRow
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_gravity="center">

            <FrameLayout
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:id="@+id/door1"
                android:clickable="true">

                <TextView
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:text="New Text"
                    android:id="@+id/textView"
                    android:layout_gravity="center" />

            </FrameLayout>

            <FrameLayout
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:id="@+id/door2" >

                <TextView
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:text="New Text"
                    android:id="@+id/textView5"
                    android:layout_gravity="center" />
            </FrameLayout>

            <FrameLayout
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:id="@+id/door3" >

                <TextView
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:text="New Text"
                    android:id="@+id/textView4"
                    android:layout_gravity="center"/>
            </FrameLayout>
     </TableLayout>
Run Code Online (Sandbox Code Playgroud)

这是我如何设置OnClickListeners的示例:

        View.OnClickListener clickListener = new View.OnClickListener() {
            @Override
            public void onClick(View v){
                // do something …
Run Code Online (Sandbox Code Playgroud)

layout android onclicklistener android-framelayout

6
推荐指数
2
解决办法
1万
查看次数