この同じパターンを別の Activity クラスで使用しましたが、完全に機能します。しかし、このクラス (Activity でもあります) では、getView が呼び出されることはありません。fbFriendMatchAdapter.getCount() をログに記録して、アダプタに 9 個のアイテムがあることを確認しました。データ ソースを String[] 変数に変更しようとしましたが、これは getView (の欠如) には影響しませんでした。
提案をいただければ幸いです。私はすでにSOを徹底的に研究しました。この質問にはさまざまな種類がありますが、私の問題を解決したものはありません。そのため、新しい質問を投稿しています。
//Here is the ArrayList data source definition.
//It is loaded using a for loop with 9 values.
private List<String> fbFriendMatchAdapter=new ArrayList<String>();
// Here is the Custom Array Adapter
ArrayAdapter<String> fbFriendMatchAdapter = new ArrayAdapter<String>(this,
R.layout.row_left, R.id.ListViewName, fbFriendPotentialMatchArrayList) {
@Override
public View getView(final int dialogPosition, View convertView, ViewGroup listParent) {
LayoutInflater inflater = getLayoutInflater();
View fbFriendMatchDialogViewRow = inflater.inflate(R.layout.row_left, listParent, false);
Log.d(BBTAG, String.format("BBSetup getView[%s] name=%s", dialogPosition, buddyDisplayName ));
return fbFriendMatchDialogViewRow;
} // [END getView]
@Override
public String getItem(int position) {
return fbFriendPotentialMatchArrayList.get(position);
}
};
//Here is the dialog that includes the ArrayAdapter:
AlertDialog fbFriendsMatchDialog = new AlertDialog.Builder(new ContextThemeWrapper(context, R.style.PetesSpinnerReplacement))
.setTitle("Select Correct Facebook Friend") //FYI overridden by custom title
.setAdapter(fbFriendMatchAdapter, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int selectedFBFriend) {
buddyFBUIDs[buddyNumber] = fbFriendUIDsList.get(selectedFBFriend);
}
})
.setMessage("No matches found")
.setCancelable(true)
.setPositiveButton("Set as Facebook Friend", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int iFriend) {
dialog.dismiss();
}
})
.setNegativeButton("Friend Not Listed", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
dialog.dismiss();
buddyFBUIDs[buddyNumber] = "n/a"; //record lack of FB uid
}
})
.create(); //build dialog
fbFriendsMatchDialog.show(); // now show dialog