2012-04-03 2 views
0

XML 레이아웃 디자인이 아닌 Java 코드를 사용하여 레이아웃 디자인을 만들었습니다. 내가 사용하는 코드는 다음과 같습니다.LayoutInflater inflater를 올바르게 사용하는 방법

public View getView(int position, View convertView, ViewGroup parent) { 
    TextView tv = new TextView(mContext); 
    tv.setText(hotelList.get(position).name); 
    return tv; 
    } 

레이아웃을 생성하는 데 layoutInflator를 사용하는 방법. 하나의 목록 항목에 2 개의 텍스트 뷰가 더 필요합니다. 전체 목록에는 10 가지 목록 항목이 포함되어 있습니다.

여기에 몇 가지 코드를 제공해주십시오. 도움을 주신

+0

안녕하세요, ListView를 디자인하고 있습니까? 좀 더 자세하게 말해줘. –

+0

나는 SAX를 사용하여 xml을 파싱하여 레이아웃을 디자인했으며 파싱 된 결과에서 목록을 사용하여 목록보기에 내용을 표시해야합니다. 이제 자바 코드를 사용하여 목록을 보여주고 있지만 위와 같이 표시해야합니다. – aditi

답변

2

저는 정적 클래스를 사용하기 전에 이것을 통과했습니다. 그것이 도움이 될 것입니다,이 체크 아웃 :

@Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     View rowView = convertView; 


     if (rowView == null) { 

      LayoutInflater inflator = this._activity.getLayoutInflater(); 
      rowView = inflator.inflate(R.layout.todolistlisting, null); 
      TodoListViewHolder viewHolder = new TodoListViewHolder(); 
      viewHolder._name  = (TextView) rowView.findViewById(R.id.tVTLName);   
      viewHolder._completed = (TextView) rowView.findViewById(R.id.tVTLCCount); 
      viewHolder._remaining = (TextView) rowView.findViewById(R.id.tVTLRCount); 
      rowView.setTag(viewHolder); 

     } 

     TodoListViewHolder holder = (TodoListViewHolder) rowView.getTag(); 
     VO_TodoList votodolist = this._items.get(position);   
     holder._name.setText(votodolist._title);    
     holder._completed.setText(votodolist._completed); 
     holder._remaining.setText(votodolist._remaining); 

     return rowView;  

    } 

TodoListViewHolder

여기 내보기 구성 요소 홀더입니다. TextView처럼

2

이 레이아웃의 XML 레이아웃을 만드는 방법을 알고 계신 것 같군요. 그래서 그냥 XML 레이아웃을 만들고 다음 코드를 사용하여 메인 레이아웃의 목적을 얻을 : 레이아웃의 아이를 얻으려면

LinearLayout mainLayout=(LinearLayout) View.inflate(R.layout.yourlayout); //if yourlayout.xml is the name of the xml file you made and put in the layout folder. 

를, 그것은 ID textTextView을 만약의 말을하자, 다음 코드는 것 :

TextView textView=(TextView)mainLayout.findViewById(R.id.text); 
+0

이것은 하나의 텍스트보기에 대해서만, 하나의 목록 항목에 총 3 개의 텍스트보기가 있고, 다른 목록 항목에 다른 3 개의 목록이 있습니다. 따라서 목록보기에 10 개의 항목이 있습니다. – aditi

+0

그런 다음 10 개의보기를 모두 XML을 사용하고이 TextView에 사용한 것과 같은 코드를 사용하여 객체를 가져옵니다. 첫 번째 문을 하나만 호출하면 기본 레이아웃의 객체를 가져와야합니다. LinearLayout이라고 가정합니다. 다른 것이 있으면 코드의 LinearLayout을 바꿉니다. – noob

0
당신은 내가 다른 선형이 하나의 텍스트 뷰를 팽창하고 여기에이

LinerLayout linearLayout = (LinearLayout)inflater.inflate(R.layout.news_categories_item, null); 

TextView categoryValueTextView = (TextView)linearLayout.findViewById(R.id.news_category_item_value); 

mMainLinearLayout.addView(categoryValueTextView); 

같은 인플레이터를 사용하여 런타임에보기를 추가 할 수 있습니다

레이아웃 (이것은 텍스트 뷰만을 유지하는 간단한 선형 레이아웃입니다) 런타임에 그리고 그것을 나의 메인 선형 레이아웃에 추가합니다.

여러분은 getLayoutInflater()를 사용하여 인플레이터 객체를 얻을 수 있습니다. 그리고 만약 당신이 당신의 활동에서 어댑터의 생성자에 인플레이터 개체를 전달해야 어댑터에서 인플레이 터를 얻을 싶어요.

관련 문제