2

私はアダプターとフラグメントを持っています。getViewメソッドの外側でビューとホルダーオブジェクトを取得する方法は?

は、このシナリオを考えてみましょう:アダプターは、デフォルトのテキスト編集することでテキスト編集

  • が編集可能

  • ないい

    1. フラグメントは、編集アイコンアダプタの編集をクリックするだけで1つの編集アイコン

    2. を持っていますテキストは編集可能になりました
    ここ

    は、フラグメントのコードです:

    @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メソッド()メソッドが、私の外のビューを取得するために求めているあなたのアダプタ内部:ここ

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

    は、アダプタのコードですListView/RecyclerViewを持っているという全体的なポイントは、個別にそれらのビューを扱う必要はありません。

    +0

    @lellomanありがとうございました...正常に動作しています... –

    +0

    ;)ようこそ – lelloman

    関連する問題