【发布时间】:2016-08-18 10:00:51
【问题描述】:
我想知道是否有办法通过使用微调器在 android 应用程序中的 2 个活动之间切换。 I want the when the first item of the spinner is selected the first activity to be active and vice versa.我试过了,但没有反应:
if (spinner.SelectedItem == item1) {
Start Activity (Activity2)
}
问题是我使用 strings.xml 文件将项目添加到我的微调器,如下所示:
<string-array name:"spinnerItems">
<item id="item1">...</item>
<item id="item2">...</item>
</string-array>
这是我添加微调器的 Main.xml 文件:
<Spinner
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/spinner"
android:entries="@array/spinnerItems"/>
所以我想知道是否必须以某种方式从主活动内部访问微调器数组列表,或者使用 FindViewById 方法启动它,这样我就可以将这些项目用于条件语句。
编辑:
void Spinner_ItemSelected(object sender, AdapterView.ItemSelectedEventArgs e)
{
int selectedPositon = e.Position;
switch(e.Position)
{
case 1:
StartActivity(typeof(Activity2));
break;
}
}
spinner.ItemSelected += Spinner_ItemSelected;
这会将我发送到我的第二个 Activity 并加载我的第二个布局。但是在我的第二个活动中,我使用此代码返回第一个:
void Spinner_ItemSelected(object sender, AdapterView.ItemSelectedEventArgs e)
{
int selectedPositon = e.Position;
switch (e.Position)
{
case 1:
StartActivity(typeof(MainActivity));
break;
}
}
我再次使用(案例 1),因为如果我这样做(案例 0),它会不断刷新,因为微调器会停留在我的第一个项目上。这样,如果我两次使用案例 1,我可以在它们之间进行交换,但项目文本不正确。基本上,我点击“Case 1”或“Item 1”,然后进入第二个活动。
【问题讨论】:
-
使用片段怎么样?
-
StartActivity(new Intent(Activity, typeof(Activity2)));应该可以工作 -
片段是什么意思?
-
我想出了如何让 StartActivity 方法工作,但我主要是在使用条件微调项语句时遇到问题。
-
您使用具有微调器和片段元素的 axml 进行活动。然后创建 2 个片段活动。选择旋转器的第一个元素时,您将使用片段的视图填充片段元素1.这适合您吗?如果您认为是的,我会发布并回答代码示例。
标签: c# android android-activity xamarin