0

touch イベントを両方に渡すことで、2 つのリストビューをスクロールしています。

 OnTouchListener touchListener = new OnTouchListener() {
                    boolean dispatched = false;                                                                                                                                                                                                                             

                    @Override
                    public boolean onTouch(View v, MotionEvent event) {
                            if (v.equals(m_lv1) && !dispatched) {
                                    m_listAdapter1.setEnabled(true);                                                                                                                                                                                                        
                                    m_listAdapter2.setEnabled(false);                                                                                                                                                                                                       
                                    dispatched = true;                                                                                                                                                                                                                      
                                    m_lv2.dispatchTouchEvent(event);                                                                                                                                                                                                        
                            } else if (v.equals(m_lv2) && !dispatched) {
                                    m_listAdapter1.setEnabled(false);                                                                                                                                                                                                       
                                    m_listAdapter2.setEnabled(true);                                                                                                                                                                                                        
                                    dispatched = true;                                                                                                                                                                                                                      
                                    m_lv1.dispatchTouchEvent(event);                                                                                                                                                                                                        
                            }
                            dispatched = false;                                                                                                                                                                                                                             
                            return false;                                                                                                                                                                                                                                   
                    }
            };  

これは正常に動作します。

リストビューの両方に OnItemClickListener もあり、正常に動作します

     m_lv1.setOnItemClickListener(new OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> adapter, View view, int position, long arg) {
..
}
});

ここで、リスト ビューのセルのサブレイアウトに clickListener を追加します。

        if(viewHolder.layout_author != null) {
            viewHolder.layout_author.setOnClickListener(new OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        Intent profileIntent = new Intent(ImageListAdapter.this.activity, ProfileActivity.class);
                        profileIntent.putExtra("JsonUser", jsonAlbumImage.jsonUser);
                        ImageListAdapter.this.activity.startActivity(profileIntent);
                    }
                });
        }

次に、スクロールが機能しないことがあります。新しい clickListener がタッチイベントを消費しているためだと思います。

どんな提案/ガイドも大歓迎です。

4

1 に答える 1

1
You should implement interface OnItemClickListener and then use its Overrided method 

onItemClick。listViews onItemClickListeners を設定します。オーバーライドされたメソッド「onItemClick」で、そのパラメータ「parent」を listViews と比較します。例えば:

if (parent.equals(listView1)) {
    /* your code here */
} else if(parent.equals(listView2){
    /* your code here */
}
于 2012-12-27T07:01:13.857 に答える