屏幕显示四个按钮.按下按钮时,媒体播放器播放声音.我遇到的问题是同时为所有按钮实现setClickable.
单击一个按钮后,我希望所有按钮都不可点击,直到媒体播放器播放完与按钮单击相关的声音.然后我想将所有按钮设置回可点击状态.
代码运行正常,直到我启用setClickable代码 - 在我的代码示例中禁用了buttonOne的代码.测试电话锁定并告诉我应用程序已停止并再次尝试.
不幸的是,如果没有setClickable,用户可以在完成第一个选定声音播放之前按任意按钮并听到任何声音.
感谢您的时间和帮助.
import android.app.Activity;
import android.app.AlertDialog;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.widget.ImageButton;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnCompletionListener;
public class hipsterdoofus extends Activity
{
private int asoundfilenumber;//integer id of sound file to be played
public ImageButton buttonOne;
public ImageButton buttonTwo;
public ImageButton buttonThree;
public ImageButton buttonFour;
public void myClickHandler(View v) {
switch (v.getId())
{
case R.id.buttonOne:
asoundfilenumber=0x7f040000;
break;
case R.id.buttonTwo:
asoundfilenumber=0x7f040001;
break;
case R.id.buttonThree:
asoundfilenumber=0x7f040002;
break;
case R.id.buttonFour:
asoundfilenumber=0x7f040003;
break;
}//closes switch test
freezeButtonsAndPlaySoundThenUnfreezeButtons();
}//closes …Run Code Online (Sandbox Code Playgroud) 我的幼稚方法如下:
function isClickable(id){
elem = document.getElementById(id);
if (elem.nodeName.toLowerCase() == 'a' || typeof(elem.click) != 'undefined'){
return true;
}else{
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
有什么我可以做的更好的吗?
我设法让我的表中的行可以单击并链接到元素的href属性<a>.但是当我使选择器只选择除最后一列之外的行时,我开始遇到问题.
使用下面的代码,可点击的行仅对整个行有效,除了最后一个单元格,这是我需要的,因为我在此单元格中有管理链接(链接以激活,编辑,删除等行).唯一的问题是,无论您点击哪一行,它都会将您发送到最上一行的链接.我认为这与我的选择器有关,find('td a')但我无法弄明白.
$('#dataTable tr td:not(:last-child)').click(function () {
location.href = $('#dataTable tr').find('td a').attr('href');
});
Run Code Online (Sandbox Code Playgroud)
悬停效果很好,只有当鼠标位于除最后一列之外的任何单元格上方时才会更改指针.
$('#dataTable tr td:not(:last-child)').hover(
function() {
$(this).css('cursor','pointer');
},
function() {
$(this).css('cursor','auto');
}
);
Run Code Online (Sandbox Code Playgroud) 我有一个按钮,当这个按钮正在播放动画时,我无法点击按钮.我设置了单击侦听器和触摸侦听器,但在调试模式下,它没有进入OnClick和onTouch方法.你知道为什么吗?谢谢
编辑:我尝试过类似的东西:
AsyncTask task = new AsyncTask() {
@Override
protected Object doInBackground(Object... objects) {
button1.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
Toast toast = Toast.makeText(MyActivity.this, button1.getText(), Toast.LENGTH_SHORT);
toast.show();
}
});
return null;
}
;
};
task.execute(button1);
Run Code Online (Sandbox Code Playgroud)
但它不起作用
编辑:这是完整的源代码
我有一个用于水平滚动的自定义图库视图和几个所有应该可点击的子视图.
设置childview.setOnClickListener()不起作用,因为它总是消耗触摸事件.
因此,我使用childview.setOnTouchListener()并让其onTouch方法返回false,以使Gallery变为可滚动.
这一切都很好.
现在的问题是,childView的onTouch方法只会触发ACTION_DOWN事件.除非我通过设置使View可单击,否则它不会传递MotionEvent ACTION_UPchildview.setClickable().但是,设置View clickable本身似乎会消耗onTouch事件,以便库视图变为不可滚动.
好像我在这里走了一圈.我会感激任何帮助.
这是我的代码
图库视图:
public class myGallery extends Gallery {
public myGallery(Context ctx, AttributeSet attrSet) {
super(ctx, attrSet);
// TODO Auto-generated constructor stub
}
private boolean isScrollingLeft(MotionEvent e1, MotionEvent e2){
return e2.getX() > e1.getX();
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY){
int kEvent;
if(isScrollingLeft(e1, e2)){ //Check if scrolling left
kEvent = KeyEvent.KEYCODE_DPAD_LEFT;
}else{ //Otherwise scrolling right
kEvent = KeyEvent.KEYCODE_DPAD_RIGHT;
} …Run Code Online (Sandbox Code Playgroud) 有时您希望将整个div(或其他元素)转换为可点击链接.这是一个例子.
这是一种使用纯CSS的跨浏览器方式:
HTML:
<div class="clickable">
<a href="URL_OF_LINK_TARGET"> </a>
Rest of div content goes here
</div>
CSS:
div.clickable { /* Containing div must have a position value */
position:relative;
}
div.clickable a {
position:absolute;
width:100%;
height:100%;
top:0;
left:0;
text-decoration:none; /* Makes sure the link doesn't get underlined */
z-index:10; /* raises anchor tag above everything else in div */
background-color:white; /*workaround to make clickable in IE */
opacity: 0; /*workaround to make clickable in IE */
filter: alpha(opacity=1); /*workaround to make …Run Code Online (Sandbox Code Playgroud) 我有 VSCode 与 1.3。我希望能够单击集成终端内显示的任何有效路径并打开文件。
你知道我怎样才能实现它吗?
谢谢!
我创建了一个带有标记的地图视图。看看下面这张图片:
Grandparent是一个填充视图
Parent是我的 MarkerView
Child是一个可点击的标记
父级有 clipChildren(false),因此子级是可见的。
我的问题是,孩子是可以点击的,除了其中一部分Child 2是外面的Parent。
Parent也有合适的TouchDelegate(我也为孩子们试过这个)。
我怎样才能让完整的孩子可以点击?
你能ctrl+click在 Windows 终端中输入一个 URL 来在默认浏览器中打开链接吗?我在任何地方都找不到选项;我需要安装一些软件包吗?
我想创建一个可点击的直方图,shiny但我不知道是否可行。
几个月前,我看到了一个可点击的火山图,它为您提供了您点击的内容的表格。
来源:https ://2-bitbio.com/2017/12/clickable-volcano-plots-in-shiny.html
我发现的关于创建可点击直方图的最接近的帖子是这个Click to get Cocoes from multiple histogram in sunny
但是,我不想获得坐标。我想要数据框的行名。
有了这个数据框,每次单击直方图中的条形时我可以获取行名吗?
mtcars <- mtcars %>%
select("hp")
mtcars <- as.matrix(mtcars)
Run Code Online (Sandbox Code Playgroud)
一个闪亮的例子(但不可点击):
library(shiny)
library(ggplot2)
library(scales)
library(dplyr)
ui <- fluidPage(
titlePanel("Histogram"),
sidebarLayout(
sidebarPanel(
),
mainPanel(
plotOutput("hist"),
)
)
)
mtcars <- mtcars %>%
select("hp")
mtcars <- as.matrix(mtcars)
server <- function(input, output) {
output$hist <- renderPlot({
pp <- qplot(mtcars, geom = "histogram", bins = 10, xlab="values",
ylab="Frequency", main="Histogram",
fill=I("red"), col=I("black"), alpha=I(0.4))
pp + scale_x_continuous(breaks=pretty(mtcars, n=10))
}) …Run Code Online (Sandbox Code Playgroud)