您好,我有两个 ListViews 活动,我可以从第一个活动调用第二个活动,但是当我关闭第二个活动并返回第一个活动时,OnItemClick 不起作用,所以你知道问题出在哪里以及如何解决它?
第一个活动 onCreate
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.add_words_activity);
list=(ListView) findViewById(R.id.add_words_list);
getClassData();
wordItems=new ArrayList<WordItem>();
adapter=new AddWordsAdapter(this, wordItems);
list.setAdapter(adapter);
list.setOnItemClickListener(itemClick);
list.setOnTouchListener(listViewTouchListener);
}
第一个活动ItemClick
private OnItemClickListener itemClick=new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapter, View view, int position,
long id) {
isEditWordDilaog=true;
start=words.get(position);
Log.d(start.getWord(),"what the fuck");
end=new WordData();
final int langId=start.getLanguageId();
end.setLanguageId(langId);
showDialog(WORD_DIALOG);
wordViewHolder.language.setImageResource(RProvider.
getLangImageId(languages.get(langId)));
wordViewHolder.word.setText(start.getWord());
wordIndex=position;
}
};
第一次接触活动:
private OnTouchListener listViewTouchListener =new OnTouchListener() {
float startX,endX;
boolean isMove=false;
@Override
public boolean onTouch(View view, MotionEvent event) {
int action=event.getAction();
switch(action){
case MotionEvent.ACTION_DOWN:
startX=event.getX();
break;
case MotionEvent.ACTION_MOVE:
isMove=true;
break;
case MotionEvent.ACTION_UP:
endX=event.getX();
if(isMove==true && startX<endX){
Rect rect=new Rect();
int endY=(int)event.getY();
for(int i=0;i<list.getChildCount();i++){
View child=list.getChildAt(i);
int left=child.getLeft();
int right=child.getRight();
int bottom=child.getBottom();
int top=child.getTop();
rect.set(left, top, right, bottom);
if(rect.contains((int)endX,endY)){
Intent intent=new Intent(AddWordsActivity.this,AddTranslateActivity.class);
int id=words.get(i).getId();
intent.putExtra(Names.WORD_ID,id);
startActivity(intent);
break;
}
}
}
/*
endX=event.getX();
if(startX<endX){
isMove=true;
}*/
break;
}
isLongClick=!isMove;
return isMove;
}
};
在第二个活动中,我使用后退按钮关闭它。在 itemClick 之后不起作用