2

我有適配器和片段。如何獲取getView方法以外的視圖和持有者對象?

考慮這種情況:

  1. 適配器有編輯文本

  2. 默認情況下,編輯文本是不可編輯

  3. 片段有一個編輯圖標
  4. 上的編輯圖標適配器的編輯點擊文本應該變得可編輯

這裏是片段代碼:

editIcon.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     Adapter.makeEditTextEditable(); 
    } 
}); 

這裏是適配器代碼:

@Override 
public View getView(final int position, View convertView, ViewGroup parent) { 
    ViewHolder holder = null; 

    if (convertView == null) { 
     convertView = inflater.inflate(R.layout.layout, null); 
     holder = new ViewHolder(); 
     holder.EditText = (EditText) convertView.findViewById(R.id.edit_text); 

    } else { 
     holder = (ViewHolder) convertView.getTag(); 
    } 
} 


// This is method i am calling from fragment to make editText editable 
public void makeEditTextEditable() { 
    // How do i get holder object and view object here? OR 
    // How do i make edit text editable from this method? 
} 

回答

3

內部適配器

boolean mEditTextEditable = false; 

@Override 
public View getView(final int position, View convertView, ViewGroup parent) { 
    ViewHolder holder = null; 

    if (convertView == null) { 
     convertView = inflater.inflate(R.layout.layout, null); 
     holder = new ViewHolder(); 
     holder.EditText = (EditText) convertView.findViewById(R.id.edit_text); 

    } else { 
     holder = (ViewHolder) convertView.getTag(); 
    }  

    holder.EditText.setEnabled(mEditTextEditable); 
} 

public void setEditTextEditable(boolean editable) { 
    if(editable == mEditTextEditable) return; 

    mEditTextEditable = editable; 
    notifyDatasetChange();  
} 

你要求得到getView()方法,但我外面的景色不會建議它,具有ListView/RecyclerView的整點不必單獨處理這些視圖

+0

謝謝@lelloman它正在正常工作...... –

+0

;)不客氣 – lelloman

相關問題