2012-03-31 8 views
0

Iセットアップ行ごとのレイアウトXMLでリストビュー:のListView

this.setContentView(R.layout.item_view); 

    ListView m_ListView = this.getListView(); 
    m_ListView.setTextFilterEnabled(true); 
    m_ListView.setItemsCanFocus(false); 
    m_ListView.setCacheColorHint(0x00000000); 
    mInflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

    ArrayList<View> views=new ArrayList<View>(); 
    e = mInflater.inflate(R.layout.item_first, null); 

    views.add(e); 

    r = mInflater.inflate(R.layout.item_second, null); 

    views.add(r); 


    mAdapter = new SillyAdapter(views); 
    setListAdapter(mAdapter); 

は、今例えば私はitem_firstTextViewを持っていると私はコードから、それを設定したい:

TextView name = (TextView)findViewById(R.id.textView1); 
    name.setText(m_item.name); 

しかし、名前は常にnullです。何故それが起こるのでしょうか?

+2

SillyAdapterのコードを投稿できますか?あなたはSillyAdapterでgetViewを実装しましたか? – Jeroen

答えて

1

コード内で次の変更を行う必要があります。

TextView name = (TextView)e.findViewById(R.id.textView1); 
name.setText(m_item.name); 

findViewByIdメソッドを間違ったビューから呼び出すか、アクティビティから呼び出している可能性があるため、nullという名前が取得されています。

e = mInflater.inflate(R.layout.item_first, null); 

を次のように膨らませているので、あなたが膨張したビュー電子にfindViewByIdを呼び出す必要があります。あなたはID とのTextViewのインスタンスを取得するようにR.id.textView1は、XMLでこれが役立つR.layout.item_first

希望を含んでいました。

+0

それは助けのためにそこにあった、thxだった – MTA