Поскольку я начал с нуля тестовый проект, чтобы попытаться точно определить проблему, я не слишком злоупотреблял копированием, чтобы найти новое решение.И, как ни странно, это тестовое решение работает.Удивлен?Не совсем догадываюсь!
Но для того, чтобы объяснить всем, кто мог испытывать те же проблемы, я экспериментировал, вот каковы были симптомы и как я их исправил.
Когда я использовал видв методе OnCreateView фрагмента, подобном следующему:
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
var ignored = base.OnCreateView(inflater, container, savedInstanceState);
var view = inflater.Inflate(Resource.Layout.fragment_options, null);
myButton = (Button)view.FindViewById(Resource.Id.Button1);
myButton.SetOnClickListener(this);
return view;
}
view.FindViewById всегда возвращал Null, даже если в intellisense "Resource.Id.Button1" был там и автозаполнялся!
Оказывается, что Button1 был определен следующим образом в файле макета фрагмента
<Button id="@+id/Button1"
android:layout_width = "match_parent"
android:layout_height = "wrap_content"
android:text ="Test"
/>
, а не как
<Button android:id="@+id/Button1"
android:layout_width = "match_parent"
android:layout_height = "wrap_content"
android:text ="Test"
/>
, как должно было быть.Правильно названный атрибут «id»!
Конечным результатом было то, что «Button1» действительно был в файле ресурсов и, следовательно, «intellicompleted», но не должным образом в пространстве имен!И да, были предупреждения компилятора о том, что мне следовало присмотреться.Предупреждения действительно ориентировали меня на проблему.
Итак, проблема была за клавиатурой!Надеюсь, что это объяснение поможет кому-нибудь столь же глупому, как я!