2016-03-22 17 views
0

Bazı özellikler ile statik olarak bir sınıfım var, sınıf statik ama alanların statik olmadığına dair bir hata alıyorum.Statik olmayan bir alandan statik alan referansı alınamıyor

Bir çözüm bulmuyorum, gördüğüm örnekler çok benzer görünüyor.

public class Note { 
    private String title, message; 
    private long noteId, dateCreateMilli; 
    private Category category; 

    public enum Category {PERSONAL, TECHNICAL, QUOTE, FINANCE} 

    public Note(String title, String message, Category category) { 
     this.title = title; 
     this.message = message; 
     this.category = category; 
     this.noteId = 0; 
     this.dateCreateMilli = 0; 
    } 

    public Note(String title, String message, Category category, long noteId, long dateCreateMilli) { 
     this.title = title; 
     this.message = message; 
     this.category = category; 
     this.noteId = noteId; 
     this.dateCreateMilli = dateCreateMilli; 
    } 

    public String getTitle() { 
     return this.title; 
    } 

    public String getMessage() { 
     return this.message; 
    } 

    public long getNoteId() { 
     return this.noteId; 
    } 

    public long getDateCreateMilli() { 
     return this.dateCreateMilli; 
    } 

    public Category getCategory() { 
     return this.category; 
    } 

    public TextDrawable getIconResource() { 
     return TextDrawable.builder().buildRound("P", android.R.color.darker_gray); 
    } 
} 

:

public class NoteAdapter extends ArrayAdapter<Note> { 

public static class ViewHolder{ 
    TextView noteTitle; 
    TextView noteBody; 
    ImageView noteIcon; 
} 

public NoteAdapter(Context context, ArrayList<Note> notes) { 
    super(context, 0, notes); 
} 

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    Note note = getItem(position); 
    ViewHolder viewHolder; 

    if (convertView == null) { 
     viewHolder = new ViewHolder(); 
     convertView = LayoutInflater.from(getContext()).inflate(R.layout.list_row, parent, false); 

     // == Here I am getting the error == 
     ViewHolder.noteTitle = (TextView) convertView.findViewById(R.id.text_item_note_title); 
     ViewHolder.noteBody = (TextView) convertView.findViewById(R.id.text_item_note_body); 
     ViewHolder.noteIcon = (ImageView) convertView.findViewById(R.id.image_item_note); 

     convertView.setTag(viewHolder); 
    } 

    return convertView; 
} 

} Burada

notum modelidir: Burada

benim ArrayAdapter olduğunu statik veya kamu statik olarak görünümü tutucu daima iç adaptör vardır Yardımını takdir edeceğim. Şimdiden teşekkürler.

cevap

5
ViewHolder.noteTitle = (TextView) convertView.findViewById(R.id.text_item_note_title); 
    ViewHolder.noteBody = (TextView) convertView.findViewById(R.id.text_item_note_body); 
    ViewHolder.noteIcon = (ImageView) convertView.findViewById(R.id.image_item_note); 

ViewHoldersınıfın adıdır. Örnek, viewHolder (küçük harfli ilk harf) olarak adlandırılmıştır. noteTitle alanları vb. Örnek üyelerdir ve bir örneğe yapılan bir başvuruyla belirtilmelidir (örn. viewHolder).

İlgili konular