ListViewでTextViewにonClickListener
とonLongClickListener
の両方を使用しています。 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();
}
});
}
OnLongClickListener()の代わりにOnItemLongClickListener()を使用する必要があると思います。
詳細な応答については developers website をご覧ください
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;
}
});
itemToClick.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//do your logic on click
});
itemToClick.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
// do your logic for long click and remember to return it
return true; }});