0

こんにちは、私は ListViews で 2 つのアクティビティを持っています。最初から 2 番目のアクティビティを呼び出すことができますが、2 番目のアクティビティを閉じて最初のアクティビティに戻ると、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;
    }
};

2 番目のアクティビティでは、戻るボタンを使用して閉じます。itemClick が機能しない後

4

1 に答える 1