我有一個Android應用程序,包含一個ListView,我用它來顯示設備列表的屏幕。這些設備保存在一個陣列中。陣列列表和列表視圖Android陣列適配器不更新時陣列列表更改
我想使用ArrayAdapter來顯示列表中屏幕上的數組。
它的工作原理,當我第一加載SetupActivity類,然而,存在該設施在的AddDevice()方法,這意味着在陣列保持裝置被更新添加新設備。
我正在使用notifyDataSetChanged()這應該是更新列表,但它似乎不工作。
public class SetupActivity extends Activity
{
private ArrayList<Device> deviceList;
private ArrayAdapter<Device> arrayAdapter;
private ListView listView;
private DevicesAdapter devicesAdapter;
private Context context;
public void onCreate(Bundle savedInstanceState) //Method run when the activity is created
{
super.onCreate(savedInstanceState);
setContentView(R.layout.setup); //Set the layout
context = getApplicationContext(); //Get the screen
listView = (ListView)findViewById(R.id.listView);
deviceList = new ArrayList<Device>();
deviceList = populateDeviceList(); //Get all the devices into the list
arrayAdapter = new ArrayAdapter<Device>(this, android.R.layout.simple_list_item_1, deviceList);
listView.setAdapter(arrayAdapter);
}
protected void addDevice() //Add device Method (Simplified)
{
deviceList = createNewDeviceList(); //Add device to the list and returns an updated list
arrayAdapter.notifyDataSetChanged(); //Update the list
}
}
任何人都可以看到我要去哪裏嗎?
麻煩,這只是我的一個錯字...抱歉的混亂 –
嘿pippa,它很酷,沒有biggy。 – petey
你可以發佈你的createNewDeviceList()嗎?它的機會是它不會向你的列表中添加任何新東西,並在原始中創建具有相同元素和順序的新列表 – petey