【发布时间】:2015-03-18 09:20:46
【问题描述】:
我只在 moto g 第二代设备 中遇到这个问题。此代码在其他设备上运行良好。
我已经在 lisview 的项目上实现了 onClick 和 onLongClick 内部适配器。但是当我长按任何项目时,会调用 onClick 而不是 onLongClick。
如果我缓慢滚动列表视图,也会调用 onClick。
getView() 内的代码如下:
LayoutInflater inflater = (LayoutInflater)parent.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
lifeActionObj = actionList.get(position);
View v = (View)inflater.inflate(R.layout.single_action, null);
TextView actionNameView = (TextView) v.findViewById(R.id.action_name);
ImageView actionIcon = (ImageView) v.findViewById(R.id.action_icon);
final Button aInfoBtn = (Button) v.findViewById(R.id.action_info);
final Button aPickBtn = (Button) v.findViewById(R.id.action_pick);
final int actionLocked = lifeActionObj.isLocked();
aPickBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if(actionLocked ==1)
{
diplayDialog();
}
else
{
LifeUser lifeUser = new LifeUser();
try {
LifeAction lifeActionObj = actionList.get(position);
int result = lifeUser.addHabit(traitId, lifeActionObj);
} catch (Exception e1) {
e1.printStackTrace();
}
actionActivity.finish();
}
}
});
aInfoBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if(actionLocked ==1)
{
diplayDialog();
}
else
{
Intent in = new Intent(actionActivity,
DisplayHtmlActivity.class);
try
{
in.putExtra("title", actionList.get(position).getDisplayName());
in.putExtra("fileName", actionList.get(position).getActionInfoFileName(actionActivity.getLifeTraitObject().getTraitId())+".html");
}
catch (Exception e)
{
e.printStackTrace();
}
actionActivity.startActivity(in);
}
}
});
final ViewGroup parent1 = parent;
final View ex = v;
v.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(actionActivity, "on click", Toast.LENGTH_SHORT).show();
if(actionActivity.getActionMode() != null)
{
actionActivity.getActionMode().finish();
}
if(actionLocked == 1)
{
diplayDialog();
}
}
});
v.setOnLongClickListener(new OnLongClickListener()
{
@Override
public boolean onLongClick(View v) {
Toast.makeText(actionActivity, "on long click", Toast.LENGTH_SHORT).show();
if(actionLocked == 1)
{
return false;
}
else
{
ex.setBackgroundColor(Color.LTGRAY);
ex.setLongClickable(false);
ex.setClickable(false);
parent1.setClickable(false);
aInfoBtn.setClickable(false);
aPickBtn.setClickable(false);
final int traitPosition = position;
try {
actionActivity.startActionMode(new LifeCAB(
ex,
parent1,
traitPosition,
aInfoBtn,
aPickBtn,
actionList.get(position).getDisplayName()));
} catch (Exception e) {
e.printStackTrace();
}
return true;
}
}
});
return v;
谁能告诉我这可能是什么原因?请指导我解决这个问题。
【问题讨论】:
标签: android android-listview scroll onclicklistener onlongclicklistener