展開可能なリストの getChildView メソッドから ListActivity を起動しています。
public void onClick(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setMessage("Do you want see all vendors selling this item?");
builder.setCancelable(false);
builder.setPositiveButton("Yes",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
Intent intent = new Intent(context, SellerListActivity.class);
intent.putExtra("category", laptop);
context.startActivity(intent);
}
});
}
ListActivity クラス onCreate は次のようになります。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_seller_list);
String[] from = { "name", "phone" };
int[] to = {android.R.id.text1, android.R.id.text2 };
adapter = new SimpleAdapter(SellerListActivity.this, sellerList,
android.R.layout.simple_list_item_2, from, to);
SellerListActivity.this.setListAdapter(adapter);
/*Go and fetch the sellers*/
new RetrieveContactsAll().execute();
}
RetrieveContactsAll は、以下の onPostExecute 関数を持つ AsyncTask です。
protected void onPostExecute(ArrayList<Map<String, String>> sellerList) {
adapter.notifyDataSetChanged();
pDialog.dismiss();
}
問題は、展開可能なリストの子をクリックすると、リスト ビューが表示され、表示が消える前に一時的に表示され、展開可能なリストに置き換えられることです。