0
你好我有兩個活動與ListViews,我可以從第一次調用第二個活動,但是當我關閉第二個活動並返回到第一個活動時,OnItemClick不起作用,所以你知道哪裏是問題以及如何解決它?不工作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);
}
第一個活動項目單擊觸摸
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不起作用
發佈您的代碼,以便我們可以看看。 – Tushar
的確,你應該在這裏發佈一些代碼,以便我們能夠找到你的錯誤,或者至少幫助你找到它。如果不是這個問題將很快關閉。 – hcpl