在listview Android 1.6中同时使用onClickListener和onLongClickListener

dca*_*121 34 android listview onlongclicklistener

我使用这两个onClickListeneronLongClickListener一个TextView的ListView控件.我看到在Android 1.6中,长时间点击监听器与点击监听器一起被激活,这意味着当我长按时,两者都被触发.但在未来的版本中并非如此.有没有解决这个问题?

@Override
public View getView(int position, View convertView, ViewGroup parent) {

  if (convertView == null) {
    LayoutInflater inflater = getLayoutInflater();
    row = inflater.inflate(R.layout.row, parent, false);
  }

  TextView tv = (TextView) row.findViewById(R.id.tv);

  tv.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View view) {
        showMessage();
      }
  });

  tv.setOnLongClickListener(new View.OnLongClickListener() {
      @Override
      public boolean onLongClick(View v) {
        showLongMessage();
      }
  });
}
Run Code Online (Sandbox Code Playgroud)

Tsa*_*Lee 114

您是否true在结尾处返回布尔值OnLongClickListener以表示您不想进一步处理?

  • 哇,再好不过了!:)谢谢! (2认同)

var*_*waj 14

我认为你应该使用OnItemLongClickListener()而不是OnLongClickListener().

请参阅开发者网站以获得进一


sel*_*chi 11

TextView t1 = (TextView) findViewById(R.id.textView1);
t1.isClickable();

t1.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        Toast.makeText(getBaseContext(), "Clicked", Toast.LENGTH_SHORT).show();
    }
});

t1.setOnLongClickListener(new View.OnLongClickListener() {
    @Override
    public boolean onLongClick(View v) {
        // TODO Auto-generated method stub
        Toast.makeText(getBaseContext(), "Long Clicked", Toast.LENGTH_SHORT).show();
        return true;
    }
});
Run Code Online (Sandbox Code Playgroud)