私は2つのボタンを持っています。それぞれをクリックすると、両方とも異なるリスト項目を与えました。クリックすると、古いリスト項目を新しいリスト項目に置き換える必要があります。
例のために。button1 クリック:
アイテム1 アイテム2 アイテム3
button2 クリック:
アイテム4 アイテム5 アイテム6
ここで、古いアイテムを新しいアイテムに交換できませんでした。
私のコード:
...
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
lv = (ListView) findViewById(R.id.listview);
web1 = (Button) findViewById(R.id.web1);
web2 = (Button) findViewById(R.id.web2);
web1.setOnClickListener(this);
web2.setOnClickListener(this);
}
@Override
public void onClick(android.view.View v) {
switch (v.getId()) {
case R.id.web1:
call(xmlHelp.URL1, xmlHelp.KEY_ITEM);
break;
case R.id.web2:
flag = false;
call(xmlHelp.URL2, xmlHelp.TAG_CONTACTS);
break;
}
}
private void call(final String url, final String keyItem) {
progressDialog = ProgressDialog.show(View.this, "", "Loading...");
new Thread() {
public void run() {
try {
if (flag) {
webCall.apiCall1(url, keyItem);
threadHandler.sendEmptyMessage(0);
} else {
webCall.apiCall2(url, keyItem);
threadHandler.sendEmptyMessage(1);
}
} catch (Exception e) {
Log.e("tag", e.getMessage());
}
}
}.start();
}
private Handler threadHandler = new Handler() {
public void handleMessage(android.os.Message msg) {
// dismiss the progress dialog
if (msg.what == 0) {
for (int i = 0; i < webCall.lm1.size(); i++) {
ListModel1 userObj = webCall.lm1.get(i);
mId.add(userObj.getId());
mName.add(userObj.getName());
mCost.add("Rs." + userObj.getCost());
mDescription.add(userObj.getDescription());
}
lv.setAdapter(null);
adapter = new ListViewAdapter(View.this, R.layout.list_item, mId,
mName, mCost, mDescription);
adapter.notifyDataSetInvalidated();
lv.setAdapter(adapter);
} else {
for (int i = 0; i < webCall.lm2.size(); i++) {
ListModel2 userObj = webCall.lm2.get(i);
mId.add(userObj.getId());
mName.add(userObj.getName());
mEmail.add(userObj.getEmail());
mGender.add(userObj.getGender());
}
lv.setAdapter(null);
adapter = new ListViewAdapter(View.this, R.layout.list_item, mId,
mName, mEmail, mGender);
adapter.notifyDataSetInvalidated();
lv.setAdapter(adapter);
}
progressDialog.dismiss();
}
};