0
 ViewHolder holder = null; 

     if (convertView == null) { 

      LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
      convertView = vi.inflate(R.layout.row_ten_words,null); 

      holder = new ViewHolder(); 
      holder.txtSrc = (EditText) convertView.findViewById(R.id.txt_src_word); 
      holder.btnTranslate = (Button) convertView.findViewById(R.id.btn_translate); 
      holder.txtDes = (EditText) convertView.findViewById(R.id.txt_des_word);}` 

, 나는 내가 R.layout.row_ten_words의 장소에서 프로그래밍 방식으로 만든 내 RelativeLayout의를 사용하려면Android-R.layout.id를 CustomAdapter의 custom relativelayout으로 바꾸는 방법은 무엇입니까? 여기

내가 사용하려는

코드는 다음과 같습니다

  ` EditText txtSrc=new EditText(this); 

    EditText txtDes=new EditText(this); 

    Button btn_translate=new Button(this); 

    translate.setText("translate"); 

    rl=new RelativeLayout(this); 

    rl.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, 
      LayoutParams.WRAP_CONTENT)); 

    rl.addView(txtSrc); 

    rl.addView(btn_translate); 

    rl.addView(txtDes);` 

난에 완전히 새로운 오전 안드로이드하지만 잘 자바 알아. 저의 접근 방식이 잘못 되었다면 제게 뭔가 제안 해주세요.

미리 감사드립니다.

+0

새로운 만들기를 레이아웃 파일, 레이아웃 폴더에 저장하고 여기에 참조를 전달하십시오. R.layout.your_layout_name. –

+0

@Brontok이 레이아웃을 처음부터 만들어야합니다. 디자인은 코드를 사용해야합니다. –

답변

0

본질적으로 뷰의 팽창을 동적 뷰 생성으로 대체하고 있습니다. 프로그래밍 방식으로보기를 만들려면 Context 참조가 필요합니다. 당신은 클래스 멤버를 추가하고 어댑터의 생성자에서 설정해야합니다 (이 정확하게 당신처럼되지 않을 수도 있습니다,하지만 당신은 아이디어를 얻을) : 다음

Context context; 

public SomeAdapter(Context context, int resource) 
{ 
    super(context, resource); 

    this.context = context; 
    ... 
    ... 

그리고 :

if (convertView == null) 
{ 
    EditText txtSrc = new EditText(context); 
    EditText txtDes = new EditText(context); 
    Button btnTranslate = new Button(context); 
    btnTranslate.setText("translate"); 

    rl = new RelativeLayout(context); 
    rl.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT)); 
    rl.addView(txtSrc); 
    rl.addView(btn_translate); 
    rl.addView(txtDes); 

    holder = new ViewHolder(); 
    holder.txtSrc = txtSrc; 
    holder.btnTranslate = btnTranslate; 
    holder.txtDes = txtDes; 

    convertView = rl; 
} 
+0

대답 주셔서 감사하지만 addView 메소드가 View @Mike에 정의되지 않았습니다 –

+0

이미 시도했습니다 ....이 방법으로 작동하지 않습니다 !! : –

+0

ClassCastException convertView = rl; –