클래스의 CustomAdapter 클래스에 getGroupView() 메서드가 있습니다. 내가하고 싶은 ExpandableListView가 있습니다 : 그룹 항목을 클릭하면 ExpandableListView가 작동하는 것처럼 자식을 보여줍니다. 더 긴 시간 동안 그룹 항목을 누르면 다른 활동이 열립니다. 문제는 OnTouchListener로 인해 클릭 할 때 하위 항목을 표시하지 않고 더 긴 프레스에서만 다른 활동에 액세스한다는 것입니다. 내 해결책은 OnTouch() 메서드에서 false를 반환하는 것이지만 작동하지 않습니다. 어떤 아이디어?onTouch() 메서드는 groupItems의 ExpandableView 효과를 취소합니다.
참고 : 저는 Android 개발에 꽤 초보자입니다. 감사 : d
@Override
public View getGroupView(int groupPosition, boolean isExpanded, View convertview, ViewGroup parent) {
final ViewGroup getAct = parent;
if(convertview == null)
convertview = inflater.inflate(R.layout.explistgroupview, null);
TextView textView = (TextView) convertview.findViewById(R.id.groupTextView);
textView.setText(tables.get(groupPosition));
ImageView imageView = (ImageView) convertview.findViewById(R.id.groupImageView);
imageView.setImageResource(R.drawable.plus_sign);
convertview.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
switch(motionEvent.getAction()) {
case MotionEvent.ACTION_DOWN:
startTime = System.currentTimeMillis();
break;
case MotionEvent.ACTION_UP:
long time = System.currentTimeMillis() - startTime;
duration += time;
if(duration >= MAX_DURATION) {
Context context = getAct.getContext();
i = new Intent(context, beer.class);
context.startActivity(i);
}
else {
return false;
}
}
duration = 0;
return true;
}
});
return convertview;
}
가 나는 view.OnTouchListener (널)를 사용하여 작동하지만 2 배 클릭에했다. –
onTouch 메서드에서 반환 값이 true이면 터치 이벤트가 사라질 것입니다. –
나는 당신의 방법을 시도했다. 마지막은 효과가 없었고 첫 번째는 클릭 할 때 활동에 액세스하지만 어떤 식 으로든 아이들을 보여주지는 않는다. –