将onclick事件侦听器添加到透明活动

时间:2014-01-23 02:16:55

标签: android

我使用透明主题进行透明活动:

 <style name="Theme.Transparent" parent="android:Theme">
    <item name="android:windowIsTranslucent">true</item>
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowIsFloating">true</item>
    <item name="android:backgroundDimEnabled">false</item>
</style>

我希望当这个活动出现然后用户点击它,它就完成了 主要的xml文件代码

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" 
    android:onClick="hide">


</RelativeLayout>

和主要活动的代码:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.activity_main);
}
public void hide(){
    finish();
}

但当然不起作用。

1 个答案:

答案 0 :(得分:2)

您的功能缺少param。它应该是

public void hide(View v){  // notice the parameter it takes for the onClick
    finish();
}

注意Button Docs

中陈述的第三项要求
  

您在android:onClick属性中声明的方法必须具有完全如上所示的签名。具体来说,该方法必须:

     

公开

     

返回无效

     

将视图定义为唯一参数(这将是单击的视图)