2012-11-12 6 views
0

매트릭스 요소를 표시하는 GridView가 있고 각 요소는 EditText 및 TextView 개체로 구성됩니다.안드로이드에서 GridView의 EditText에 텍스트를 가져와 설정하는 방법은 무엇입니까?

GridView에서 특정 EditText 및 TextView 개체에 어떻게 액세스 할 수 있습니까?

EditText 및 TextView 객체를 동적으로 가져 와서 설정하고 싶습니다. EditText 행 + col 및 TextView (행, 열) 텍스트를 설정할 일부 코드를 개발했지만 모든 EditText 쇼 2 및 모든 TextView 표시 (1,1) 내 코드를 확인하고 도와주세요, 당신에게 매우 감사드립니다 .

public class GridAdapter extends BaseAdapter 
    { 
     Context mContext; 

     TextView elementSubscript; 
     EditText elementValue ; 
     int matrixIndex =0; 


     public GridAdapter(Context c) 
     { 
      mContext = c; 
     } 

     public View getView(int position, View convertView, ViewGroup parent) 
     { 
      // TODO Auto-generated method stub 
      View elementLayout; 
      if(convertView==null) 
      { 
       LayoutInflater layoutInflater = getLayoutInflater(); 
       elementLayout = layoutInflater.inflate(R.layout.matrix_element, null); 

       elementSubscript = (TextView)elementLayout.findViewById(R.id.elementSubscript); 
       elementValue = (EditText)elementLayout.findViewById(R.id.elementValue); 

       for(int row=1; row<=5; row++) 
       { 
        for(int col=1; col<=4; col++) 
        { 
         if(position == matrixIndex) 
         { 
          int mIndex =row+col; 
          elementSubscript.setText("("+row+","+col+")"); 
          elementValue.setText(mIndex+""); 

          matrixIndex++; 
         } 

        } 
       } 

      } 
      else 
      { 
       elementLayout = convertView; 
      } 

      return elementLayout; 
     } 


     public int getCount() 
     { 
      // TODO Auto-generated method stub 
      return 20; 
     } 

     public Object getItem(int arg0) 
     { 
      // TODO Auto-generated method stub 
      return null; 
     } 

     public long getItemId(int position) 
     { 
      // TODO Auto-generated method stub 
      return 0; 
     } 
    } 

답변

0

재활용보기를 업데이트하지 않습니다. 적절한 자습서 like this을 방문하십시오. 내가 재활용 뷰에 대한 아무 생각이

public class GridAdapter extends BaseAdapter 
{ 
    Context mContext; 

    TextView elementSubscript; 
    EditText elementValue ; 
    int matrixIndex =0; 


    public GridAdapter(Context c) 
    { 
     mContext = c; 
    } 

    public View getView(int position, View convertView, ViewGroup parent) 
    { 

     View elementLayout = convertView; 

     if(convertView==null) 
     { 
      LayoutInflater layoutInflater = getLayoutInflater();//If view is null inflate a view 
      elementLayout = layoutInflater.inflate(R.layout.matrix_element, null); 
     } 
      elementSubscript = (TextView)elementLayout.findViewById(R.id.elementSubscript); 
      elementValue = (EditText)elementLayout.findViewById(R.id.elementValue); 

      for(int row=1; row<=5; row++) 
      { 
       for(int col=1; col<=4; col++) 
       { 
        if(position == matrixIndex) 
        { 
         int mIndex =row+col; 
         elementSubscript.setText("("+row+","+col+")"); 
         elementValue.setText(mIndex+""); 

         matrixIndex++; 
        } 
       } 
      } 
     //updating the view in case of view reuse and new view 
     return elementLayout; 
    } 


    public int getCount() 
    { 
     // TODO Auto-generated method stub 
     return 20; 
    } 

    public Object getItem(int arg0) 
    { 
     // TODO Auto-generated method stub 
     return null; 
    } 

    public long getItemId(int position) 
    { 
     // TODO Auto-generated method stub 
     return 0; 
    } 
} 
+0

친애 : 섹션 5.5

수정 된 코드를 확인하십시오. 코드에서 필요한 변경 사항을 권장하도록 도와 줄 수 있습니까? – user1703737

+0

이미 변경되었습니다. convertView가 null이며 항상 뷰를 업데이트하면 뷰가 확대됩니다. 뷰를 재활용하는 경우 convertView는 업데이트해야 할 이전 값을 갖습니다. – Atrix1987

+0

친애하는 저는 코드에서 변경했지만 여전히 작동하지 않습니다. – user1703737

관련 문제