2012-03-30 7 views
1

채팅 프로그램을 쓰고 있습니다. 채팅 활동에서 보내고받은 메시지는 거품처럼 EditTexts로 표시됩니다. 나는 edittexts의 너비를 메시지의 너비와 동일하게 설정하려고합니다. 내 코드에서 메시지가 생성되면 상대 편집문에서 프로그래밍 방식으로 새로운 편집 문구가 작성됩니다. 어떻게 설정할 수 있습니까?RelativeLayout의 Android Textview 너비

public void sendmyMessage(String msg){ 
    // mRR is my RelativeLayout 
    RelativeLayout.LayoutParams params; 
    EditText e = new EditText(mRR.getContext()); 
    e.setId(arr.size()+2); 
    e.setEnabled(false); 
    e.setFocusable(false); 
    e.setClickable(false); 
    e.setText(msg); 
    e.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 12); 
    e.setTypeface(null,Typeface.BOLD); 
    e.setTypeface(Typeface.SANS_SERIF); 
    e.setTextColor(Color.parseColor("#080808")); 

    params = new RelativeLayout.LayoutParams(setDp(150, e.getContext()),RelativeLayout.LayoutParams.WRAP_CONTENT); 
    params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT); 
    params.setMargins(0, setDp(8, e.getContext()), 0, 0); 
    if(arr.isEmpty()){ 
     params.addRule(RelativeLayout.ALIGN_PARENT_TOP); 
    }else{ 
     params.addRule(RelativeLayout.BELOW,arr.get(arr.size()-1).getId()); 
    } 
    Spannable str = e.getText(); 
    str.setSpan(new StyleSpan(android.graphics.Typeface.BOLD), 0, str.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 

    e.setLayoutParams(params); 
    e.setBackgroundResource(R.drawable.mytext); 
    arr.add(e); 
    mRR.addView(e); 

} 

이 기능은 다음과 같습니다. 나는 너비를 고정 크기로 설정하고 싶지 않다. 해결 방안은 무엇인가?

답변

1

이와 비슷한 ..?

editText.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT)); 
+0

나는 실제로 그 점을 이해했다. .. 어리석은 나를 어떻게 :), 감사합니다. –