2013-08-28 129 views
0
package com.c2.layoutsdemo; 

import java.util.ArrayList; 

import android.app.Activity; 
import android.app.FragmentManager; 
import android.os.Bundle; 
import android.widget.ArrayAdapter; 

public class ToDoListActivity extends Activity implements NewItemFragment.OnNewItemAddedListener { 

此外,如果我使arraylist和addar適配器最終按照示例,我得到有關arraylist初始化的其他錯誤。使用片段管理器時出錯

ArrayList<String> todoItems; 
    ArrayAdapter<String> aa; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_to_do_list); 

    FragmentManager fm= getFragmentManager(); 
    ToDoListFragment todolistFragment = (ToDoListFragment)fm.findFragmentById(R.layout.ToDoListFragment); 

以上行給出錯誤:ToDoListFragment無法解決或無法在現場

todoItems = new ArrayList<String>(); 
    aa = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,todoItems); 


    todolistFragment.setListAdapter(aa); 


    } 

    @Override 
    public void onNewItemAdded(String newItem) { 
     todoItems.add(newItem); 
     aa.notifyDataSetChanged(); 

    } 

} 
+0

ToDoListFragment確保這個類在你的項目中。或者你已經在你的活動中導入了它,有一件事是你的活動應該是一個片段活動,以保存這些片段。 – Triode

+0

如果final關鍵字被刪除,但在第二段代碼的最後一行出現錯誤,則解決在註釋1中描述的錯誤: - > ToDoListFragment無法解析或不是字段。在線路: ToDoListFragment todolistFragment =(ToDoListFragment)fm.findFragmentById(R.layout.ToDoListFragment); – Vashishat

回答

0

你得到憑身份證片段,因此而不是使用

R.layout.ToDoListFragment 

你應該使用

R.id.TheIdOfTheFragment 

並確保在您的佈局文件中;你的片段聲明包含和id屬性:

<fragment android:name="xxx,xxx,xxx.ToDoListFragment" 
      android:id="@+id/TheIdOfTheFragment" 
      .... 
/> 
+0

謝謝勞爾。 問題解決了。 – Vashishat