gpt4 book ai didi

android - OnLongClickListener 没有正常工作

转载 作者:行者123 更新时间:2023-11-29 15:18:20 24 4
gpt4 key购买 nike

代码非常简单。没什么了不起的,我只是想吐槽一条消息,出于某种原因,两种情况下的行为是不同的。

案例 1:这是可行的:

代码如下:

 @Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.webopen);


TextView sometext = (TextView)findViewById(R.id.click);
sometext.setOnLongClickListener(new OnLongClickListener() {

@Override
public boolean onLongClick(View v) {
Toast.makeText(getApplicationContext(), "Long click Working", Toast.LENGTH_LONG).show();
return false;
}
});


}

案例 2:不工作!我想知道它不起作用的原因

public class OnClick extends Activity implements OnLongClickListener {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.webopen);

TextView sometext = (TextView) findViewById(R.id.click);

}

@Override
public boolean onLongClick(View v) {

switch (v.getId()) {
case R.id.click:
Toast.makeText(getApplicationContext(), "Long click enabled",
Toast.LENGTH_LONG).show();
// OR
// Something();
break;

default:
break;
}

return false;
}

public boolean Something() {

Toast.makeText(getApplicationContext(), "Long click enabled",
Toast.LENGTH_LONG).show();
return true;
}
}

代码没有什么特别之处,但我只想知道 onLongClickListener 不工作的原因。

任何建议都会有所帮助..:)

最佳答案

您没有为 someText 设置 onLongClickListener。你需要添加这个:

someText.setOnLongClickListener(this);

此行会将监听器对象附加到 TextView 对象。在第一种情况下,您调用 setOnLongClickListener,这就是它起作用的原因。在本例中,您正在创建一个新的onLongClickListener 对象内联

在第二个示例中,您的 Activity 继承了 OnLongClickListener,这使其成为该对象的一个​​实例。因此,要为 someText 设置监听器,请传递监听器 this,它是对当前类的引用。

关于android - OnLongClickListener 没有正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21835586/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com