2013-08-06 2 views
1

클릭하면 맞춤 레이아웃 목록보기를 채우는 데 문제가 있습니다. java 및 ArrayLists에 대한 경험이 없습니다. 내 코드는 주로 웹에서 자습서를 사용하여 작성됩니다. 나는 예제를 통해 훨씬 더 빨리 배웁니다. 그래서 사용자 지정 항목에 대한 클래스와 어댑터에 대한 클래스가 있습니다. 그들은 다음과 같이 이동 :Android 맞춤 목록보기를 동적으로 채 웁니다.

public class Prodf { 
     public int icon; 
     public String id; 
     public String nume; 
     public String um; 
     public String pu; 
     public String cant; 
     public Prodf(){ 
      super(); 
     } 

     public Prodf(int icon, String id, String nume, String um, String pu, String cant) { 
      super(); 
      this.icon = icon; 
      this.id = id; 
      this.nume = nume; 
      this.um = um; 
      this.pu = pu; 
      this.cant = cant; 
     } 
    } 

및 어댑터 :

public class ProdfAdapter extends ArrayAdapter<Prodf> { 

     Context context; 
     int layoutResourceId; 
     Prodf data[] = null; 
     Context mContext; 

     public ProdfAdapter(Context context, int layoutResourceId, Prodf[] data) { 
      super(context, layoutResourceId, data); 
      this.layoutResourceId = layoutResourceId; 
      this.mContext = context; 
      this.context = context; 
      this.data = data; 
     } 

     @Override 
     public View getView(int position, View convertView, ViewGroup parent) { 
      View row = convertView; 
      ProdfHolder holder = null; 
      if(row == null) 
      { 
       LayoutInflater inflater = ((Activity)context).getLayoutInflater(); 
       row = inflater.inflate(layoutResourceId, parent, false); 
       holder = new ProdfHolder(); 
       holder.hldIcon = (ImageView)row.findViewById(R.id.fffIcon); 
       holder.hldId = (TextView)row.findViewById(R.id.fID); 
       holder.hldNume = (TextView)row.findViewById(R.id.fTitlu); 
       holder.hldUm = (TextView)row.findViewById(R.id.fUM); 
       holder.hldPu = (TextView)row.findViewById(R.id.fPU); 
       holder.hldCant = (TextView)row.findViewById(R.id.fCant); 
       row.setTag(holder); 
      } 
      else 
      { 
       holder = (ProdfHolder)row.getTag(); 
      } 
      Prodf produ = data[position]; 
      holder.hldId.setText(produ.id); 
      holder.hldNume.setText(produ.nume); 
      holder.hldUm.setText(produ.um); 
      holder.hldPu.setText(produ.pu); 
      holder.hldCant.setText(produ.cant); 
      return row; 
     } 


     static class ProdfHolder 
     { 
      ImageView hldIcon; 
      TextView hldId; 
      TextView hldNume; 
      TextView hldUm; 
      TextView hldPu; 
      TextView hldCant; 
     }  
    } 
  • 어떻게 사용자 정의 레이아웃 목록보기에 전체 항목을 추가하려면, 버튼 클릭 이벤트에서, 이러한 사용합니까?

여기에서 나는 버튼 이벤트를 설정하고 목록보기에 대한 어댑터를 설정합니다. 그러나 어댑터 및 추가 기능에서 다른 유형을 사용합니다 ... 어떻게 수정합니까? 당신이 알 따라

... 
ArrayList<Prodf> produsele = new ArrayList<Prodf>(); 
.... 
Button badd = (Button) findViewById(R.id.btn_addpro); 
View.OnClickListener eventHandler2 = new View.OnClickListener() { 
@Override 
public void onClick(View arg0) { 
Prodf produsu = new Prodf(0, "id1", "numepro", "PCS", "3.20", "2");   
produsele.add(produsu);     
ProdfAdapter adapter = new ProdfAdapter(MyActivity.this,R.layout.prodf_item, produsele); 
mylist.setAdapter(adapter);        
adapter.notifyDataSetChanged(); 

, 내 어댑터 ArrayAdapter와를 확장하고 내가 항목을 채울 때이 Prodf [], 내가 ArrayList에를 사용할 것으로 기대하고있다. 따라서, 나는 컴파일러 오류 얻을 ... 나는 이것이 내 문제라고 생각하지만, 나는 그들이 함께 얻을 수 있도록하는 방법을 알고하지 않습니다

생성자 ProdfAdapter

(MyActivity는, INT가, ArrayList를가) 정의되지를

나는 왜 그런지 알지만 그것을 고치는 법을 모른다.

+0

이 어댑터를 목록보기 –

+0

으로 설정해야합니다. 표시해 드리겠습니다. (질문을 편집하여 표시합니다). Arraylist를 채우는 데 문제가 있으며 어댑터를 사용합니다 – user1137313

답변

0

중 하나를 사용하여 어댑터에 항목을 추가 할 수 있습니다. 나는 Click 이벤트에서 추가하는 것과 동일한 유형의 정보를 받기 위해 Adapter를 변경해야했습니다. 이제 작동합니다.

관련 문제