- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是代码,谁能告诉我如何让onClick事件运行?
Activity 的 xml 文件,其中包含一个抽屉导航 fragment 、一个 ImageView 、一个 TextView 和一个 ImageButton
<?xml version="1.0" encoding="utf-8"?>
<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:orientation="vertical">
<include
android:id="@+id/app_bar"
layout="@layout/app_bar" />
<ImageView
android:id="@+id/imageView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignTop="@+id/drawer_layout"
android:adjustViewBounds="true"
android:contentDescription="@string/ContentDescriptionProfileImage"
android:src="@drawable/profile_pic" />
<LinearLayout
android:id="@+id/linearLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/imageView"
android:background="#FFFFFF"
android:orientation="horizontal"
android:padding="5dp">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="45dp">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_gravity="center_vertical"
android:padding="3dp"
android:text="@string/profileName"
android:textColor="#000000"
android:textSize="18sp"
android:textStyle="bold" />
<ImageButton
android:id="@+id/profileSettings"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:background="@null"
android:contentDescription="@string/settingsIconDescription"
android:padding="8dp"
android:onClick="onSettingsIconPressed"
android:src="@drawable/settings32" />
</RelativeLayout>
</LinearLayout>
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_below="@+id/app_bar">
<fragment
android:id="@+id/fragment_navigation_drawer"
android:name="studio25.materialdesign.NavigationDrawerFragment"
android:layout_width="280dp"
android:layout_height="match_parent"
android:layout_gravity="start"
app:layout="@layout/fragment_navigation_drawer"
tools:layout="@layout/fragment_navigation_drawer"></fragment>
</android.support.v4.widget.DrawerLayout>
</RelativeLayout>
屏幕图像看起来像this
这是 Activity 类
package studio25.materialdesign;
import android.annotation.TargetApi;
import android.os.Build;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.support.v7.widget.PopupMenu;
import android.support.v7.widget.Toolbar;
import android.view.ContextMenu;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ImageButton;
import android.widget.Toast;
public class ProfileView extends ActionBarActivity {
private Toolbar toolbar;
String title = "";
ImageButton setttingsButton;
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_profile_view);
toolbar = (Toolbar) findViewById(R.id.app_bar);
setSupportActionBar(toolbar);
this.getSupportActionBar().setTitle(title);
getSupportActionBar().setDisplayShowHomeEnabled(true);
NavigationDrawerFragment drawerFragment = (NavigationDrawerFragment)
getSupportFragmentManager().findFragmentById(R.id.fragment_navigation_drawer);
drawerFragment.setUp((DrawerLayout) findViewById(R.id.drawer_layout), toolbar);
setttingsButton= (ImageButton) findViewById(R.id.profileSettings);
/*
Window window = this.getWindow();
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
window.setStatusBarColor(this.getResources().getColor(R.color.primaryColor));
*/
}
public void onSettingsIconPressed(View v)
{
/*
PopupMenu popupMenu=new PopupMenu(this,v);
MenuInflater inflater=getMenuInflater();
inflater.inflate(R.menu.profile_settings_popup_menu,popupMenu.getMenu());
popupMenu.show();
*/
Toast.makeText(this,"Event Click Occured",Toast.LENGTH_SHORT).show();
}
}
我基本上想要在按钮点击时弹出菜单,但在调试时发现我的按钮点击本身不起作用。
一些教程说弹出菜单,minSdkVersion应该是11,甚至改变了。
没有任何帮助。是我的 xml 错误还是什么?
最佳答案
我通常喜欢在代码中连接我的回调(只是我个人的喜好)。
setttingsButton= (ImageButton) findViewById(R.id.profileSettings);
setttingsButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(this,"clicked!",Toast.LENGTH_SHORT).show();
}
});
有了这个,您可以删除 xml 布局中的 onClick
属性。
如果你想要一个弹出窗口然后 PopupWindow是一个不错的选择。
popupWindow = new PopupWindow(some_view_to_show, ViewGroup.LayoutParams.MATCH_PARENT, (int)popupHeight, false);
...
popupWindow.showAtLocation(view_to_inject_into, Gravity.NO_GRAVITY, 0, (size.y) - (int) popupHeight);
然后你调用popupWindow.dismiss();
来移除弹出窗口
您的问题也可能是,由于您使用的是 RelativeLayout
,每个元素都“堆叠”在彼此之上,因此您基本上“埋葬”了您的 ImageButton
你想点击。所以换句话说,一些其他 View 正在阻止或消耗您的点击。
尝试将您的 ImageButton
移动到您添加到 xml 文件的最后元素之一,以便它位于其他所有元素的“顶部”,以便可以单击它。
或者,您可以尝试使包含的 LinearLayout
代替 ImageButton
可点击。因此,您可以将 android:onClick="onSettingsIconPressed"
属性移动到包含 ImageButton
的 LinearLayout
。
关于Android ImageButton ClickEvent 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28909955/
我在面板上有 10 个标签 - 和 10 个相同的 ClickEvents(更改背景颜色)。 我怎样才能减少代码,即编写一个通用程序? 像这样的东西: foreach (Control c in pa
我有一个按钮,当您单击它时会显示一个对话框。 但是,如果您单击该按钮,它会显示对话框,同时它将关闭然后再次打开。 似乎对话框的 closeEvent 在按钮上的 clickEvent 之前抛出。因此,
我正在使用循环函数将一些元素填充到 div 中。该 div 的每个元素都有 onClick 函数。问题是 onclick 函数没有触发。 这是我的代码: var Source = "#boxcard"
这是代码,谁能告诉我如何让onClick事件运行? Activity 的 xml 文件,其中包含一个抽屉导航 fragment 、一个 ImageView 、一个 TextView 和一个 Image
我创建了 NavigationView 并设置了 3 个项目。 如下图所示: 现在我想要的是,当我点击特定项目时,它应该启动一个 Activity 。 如何实现? 谢谢! 最佳答案 我从您的问题中可以
当我点击元素栏中的元素时,它什么都不做,我可以将它拖到任何我想要的地方。然后我重新打开库存,元素又回来了。我希望单击该项目(在本例中为通知项目)以切换通知 boolean 值并关闭库存。请帮忙。这可能
当我单击一个按钮时,必须显示一个下拉菜单。当我点击页面中的任何地方时,它需要隐藏。我遇到的问题是:当我运行该页面时,我可以看到下拉菜单而不是点击事件。我尝试了不同的 div 标签,但没有效果。 演示:
在 TableView 中使用 CheckBoxTableCell 我不想在用户单击复选框时执行某些代码。此代码需要在检查 CheckBox 之前以及更改关联的属性之前执行。 由于 CheckBoxT
我正在使用 MVVM 在 WPF 中创建一个应用程序,但我处于困境,因为我无法将命令绑定(bind)到 Canvases ClickEvent。 我想在 Canvas 上放置一些矩形并将其位置保存到数
我正在尝试创建一个简单的按钮,当单击它时,我想触发 FormPanel 内的隐藏 FileUpload 小部件。到目前为止我做了两件事: 我创建了一个原生 JavaScript单击 FileUploa
我有一个带有一些文本字段的基本 BeanFieldGroup 编辑器。我公开了 save-Button 以便 Presenter 类可以注册到它。 问题:当 View 中的 TextField 元素出
HTML: content Javascript: this.content = ko.observable(false); //Named function triggers at
下面是我今天想到并创建的一个小项目的链接。我无法使用 IIFE 让按钮多次工作。我已经在没有 IIFE 的情况下解决了这个问题,但我的理解是最好将代码设为私有(private)...任何建议将不胜感激
我有一个 ListView,可将数据从数据库填充到复杂的 ListView 中。数据库的“gotoURL”列中的字符串是使用 putExtra Intent 将链接加载到 WebView 的 URL。
共有三个图标。我把图标放在整数数组上。我怎样才能给他们点击监听器事件。 icon0、icon1、icon2 事件不同。我想给他们点击事件。但我做不到。如何分别给图标点击事件 我使用 wheel.gam
我通过以下方式启用了 google map mylocation 标记: googleMap.isMyLocationEnabled = true 然后它将显示以下内容: 但现在我想要在用户触摸此标记
是否可以向 ImageButton 添加点击事件? 最佳答案 是的!你可以像这样实现 onclick 方法 ImageButton ib = (ImageButton)findViewById(R.i
我希望在我的网站上有一个模拟 CTRL + +(放大)的按钮。所以我需要创建 2 个按键或其他东西。我有以下触发 1 个按键的命令: Stackoverflow f
尝试合并时遇到以下问题 CSS用 JS 转换事件处理程序。我知道如何使用 CSS 过渡属性,例如: div { width: 50px; height: 50px; backg
“当用户单击描述 TextView 和 Like ImageButton 时,我尝试创建 Toast 消息。但 list_item 未响应触摸事件” “我询问了很多其他人关于改变焦点的问题,但他们都没
我是一名优秀的程序员,十分优秀!