안녕하세요


google gcm을 이용해서 채팅을 개발중인데요..



일반 text는 잘주고 받고 있습니다.


이번에는  카카오톡이나 라인과 같이 아이콘을 editbox에 넣어서 보낼려고 합니다.



현재 editbox에 넣는 기능은 SpannableStringBuilder를 이용해서 집어 editbox에 넣고있습니다.


그리고 send를 누르면 전송은 잘됩니다.


문제는  listview에 보여줄때 무엇이 문제인지모르겠지만

기존 데이터가 계속 누적되면서 보여주고 있습니다.


아무래도 lineanlayout에 addview를 하면서 신규데이터뿐만 아니라 기존 데이터까지 listview에서

자동으로 뿌려주는것 같습니다.



코드는 아래와 같습니다.


TextView cmnt=null, reg_date=null;

LinearLayout mydata_blank=null, mydata=null;

mydata_blank=(LinearLayout) view.findViewById(R.id.row_liner_mydata_blank);

mydata=(LinearLayout) view.findViewById(R.id.row_liner_mydata);



if(data.getCmnt().indexOf("#")!=-1){  //아이콘 이미지가 있다면..

mydata_blank.setVisibility(View.VISIBLE);

mydata.setVisibility(View.GONE);

String str=data.getCmnt();

String[] st=str.split("#");

String parse_str;

int result2=0;

int check_i=0;



if(mSendFlag){ //전송 버튼 클릭시 

for(int i=0;i<st.length;i++){

parse_str=st[i];

if(parse_str.indexOf("drim_")!=-1){

result2=getResources().getIdentifier(parse_str, "drawable", "com.example.dream");

ImageView tmpimg=new ImageView(getApplicationContext());

tmpimg.setImageDrawable(getResources().getDrawable(result2));

mydata_blank.addView(tmpimg, i, new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));

//mydata_blank.addView(tmpimg);

}else{

TextView tmptext=new TextView(getApplicationContext());

tmptext.setGravity(Gravity.CENTER_VERTICAL);

tmptext.setText(parse_str);    

//mydata_blank.addView(tmptext);

mydata_blank.addView(tmptext, i, new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));

}

}

}



}else{  //아이콘 이미지가 없다면...


mydata_blank.setVisibility(View.GONE);

mydata.setVisibility(View.VISIBLE);

cmnt=(TextView) view.findViewById(R.id.row_mycmnt_txt);

reg_date=(TextView) view.findViewById(R.id.row_mydate_txt);

cmnt.setText(data.getCmnt());

reg_date.setText(data.getReg_date());

System.out.println(cmnt.getText().toString());

}