android adb adapter,android – 从ArrayAdapter刷新ListView

这篇博客讨论了在Android应用中如何正确使用ListView和ArrayAdapter。开发者需要在初始化时创建适配器,并在按钮点击事件中更新数据,通过调用`notifyDataSetChanged()`通知UI刷新。博客强调了避免每次点击时都实例化新的适配器,而是应该使用setter方法修改适配器数据。
摘要由CSDN通过智能技术生成

您每次都要实例化一个新的适配器.您需要做的是在单击侦听器之前放置实例化适配器的行,并在单击侦听器中修改该适配器并在其上调用notifyDataSetChanged().您当然必须向适配器添加一些setter才能修改数据.

必须看起来像这样:

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.config_hidden);

listView=(ListView) findViewById(R.id.hiddenList);

//instantiate the adapter (just one time)

adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, xmlFileManager.getHiddenNumbers());

//assign the adapter to the listview

listView.setAdapter(adapter);

xmlFileManager=new XmlFileManager(this);

addNumber=(Button) findViewById(R.id.addNum);

addNumber.setOnClickListener(new OnClickListener() {

public void onClick(View arg0) {

LayoutInflater factory = LayoutInflater.from(HiddenCall.this);

final View alertDialogView = factory.inflate(R.layout.add_number, null);

AlertDialog.Builder adb = new AlertDialog.Builder(HiddenCall.this);

adb.setView(alertDialogView);

adb.setTitle(R.string.dialog_title);

adb.setIcon(R.drawable.phone);

final AlertDialog alertDialog = adb.create();

adb.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog, int which) {

numberToAdd=(EditText) alertDialogView.findViewById(R.id.numberToAdd);

String number = numberToAdd.getText().toString();

if(number.length()>0){

xmlFileManager.addNumberToXml(number , HIDDEN_NUMBER_TYPE);

//adapter = new ArrayAdapter(getApplicationContext(), android.R.layout.simple_list_item_1, xmlFileManager.getHiddenNumbers());

//adapter.setNotifyOnChange(true);

//set the changed data

adapter.setData(xmlFileManager.getHiddenNumbers());

//notify that the model changed

adapter.notifyDataSetChanged();

}

} });

adb.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog, int which) {

alertDialog.dismiss();

} });

adb.show();

}

});

//adapter.notifyDataSetChanged();

//adapter.setNotifyOnChange(true);

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值