關於ListView中存在兩個EditText焦點的解決方法

寫給自己看的,省的回頭忘了 = =;



聲明:

private  int touchedPosition = -1;
private  int touchedPosition_num = -1;


然後在getView裏面:


 	edit_price.setOnTouchListener(new View.OnTouchListener() {


            @Override
            public boolean onTouch(View v, MotionEvent event) {
                if (event.getAction() == MotionEvent.ACTION_UP) {
		// 在TOUCH的UP事件中,要保存當前的行下標
                    touchedPosition = position;
                    touchedPosition_num = -1;
		//主要是這裏哈,點了第一個editText就要把第二個editText記錄的位置重新賦值。
		//你可以打印看看touchedPosition是怎麼變化的。
	
                }
                return false;
            }
        });




        edit_number.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                if (event.getAction() == MotionEvent.ACTION_UP) {
                    touchedPosition_num = position;
                    touchedPosition = -1;

                }
                return false;
            }
        });




        if (touchedPosition_num != -1 && touchedPosition_num == position) {
            spec_edit_number.requestFocus();
            //要根據位置和當前的行下標手動爲EditText設置焦點
		
		touchedPosition = -1;

        }else {
            spec_edit_number.clearFocus();
            

        }
        if (touchedPosition != -1 &&touchedPosition == position) {
            spec_edit_price.requestFocus();
            touchedPosition_num = -1;

        }else {
            spec_edit_price.clearFocus();
          
        }



發佈了22 篇原創文章 · 獲贊 1 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章