2013-05-04 1 views
0

내 응용 프로그램에서 나는 (ArrayAdapter>를 확장하는) 어댑터에 전달할 것입니다. List<Map<String, String>>. {received=true, text=Some sort of text}가 여기 내의 getView 방법이다 : 당신은 내가의 setText 내 텍스트 뷰를 원하는 볼 수 있듯이이상한 textview.setText() 어댑터 결과 내

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    Map<String, String> singleRecord = new HashMap<String, String>(); 
    singleRecord = records.get(position); 
    View rowView = convertView; 
    if (rowView == null) { 
     LayoutInflater layoutInflater = context.getLayoutInflater(); 
     rowView = layoutInflater.inflate(record_layout, null); 
    } 

    //To test get method I do: 
    String to_put = singleRecord.get(KEY_TEXT); 
    Log.e("Adapter", to_put); 
    //// 

    TextView singleText = (TextView) rowView.findViewById(R.id.singleID); 
    singleText.setText(singleRecord.get(KEY_TEXT)); 

    //viewHolder.singleText.setText(tekst); 

    return super.getView(position, convertView, parent); 
} 

내지도가 키를 포함하는 : 같은이 목록에서 단일 레코드 보인다 "KEY_TEXT"; get 메서드가 잘 작동하는지 테스트하려면 로그에 넣고 올바르게 보이지만 LogCat (텍스트의 텍스트)에 넣은 텍스트와 내 textview의 텍스트를 설정할 때 키 값을 얻지 못합니다 : "KEY_TEXT", 나는 다음과 같이 보입니다 : {received=true, text=Some sort of text} 그래서 하나의 레코드가 String으로 변환되었습니다. 아무도 이것이 왜 일어나는지를 알고 있습니까?

+0

어떻게합니까 * 실제 * 문자열 보면, 당신은 당신의지도 내부 (값으로) 저장하고 있는지? –

+0

왜'return rowView'입니까? 수퍼 클래스 메서드가 잘못된 텍스트를 어떻게 든 채울 것으로 생각됩니다. 당신의'getItem()'은 무엇을합니까? –

+0

당신이 맞아요. 잘못된 값을 반환했는데, 그것이 getView 메소드로 ctrl + space를 눌렀을 때 Eclipse가 썼던 것입니다. – Janek

답변

0

코드 아래 사용하세요 :

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    Map<String, String> singleRecord = new HashMap<String, String>(); 
    View vi = convertView; 
    singleRecord = records.get(position); 
    vi = mLayoutInflater.inflate(R.layout.record_layout, null); 

    TextView tv1 = (TextView) vi 
      .findViewById(R.id.singleID); 

    tv1.setText(singleRecord.get(KEY_TEXT)); 

    return vi; 

}