私は、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(null)を使用して動作しますが、唯一のX2クリックで作られました。 –
onTouchメソッドで戻り値がtrueの場合は、タッチイベントがなくなることがわかります。 –
あなたの方法を試しましたが、最後の方法は機能しませんでした。最初のものはクリックでアクティビティにアクセスしましたが、何も表示されません。 –