我正在尝试从片段中调用一个新活动。我在工具栏上有一个按钮,当按下时,以下代码被称为(此事件在片段内):
Intent secondactitvity = new Intent(this.Activity,typeof(Activity_SecondActivity));
StartActivity(secondactitvity );
现在正在调用新活动,这是我在新活动的OnCreate
内的代码:
RequestWindowFeature(WindowFeatures.ActionBar);
ActionBar.SetIcon(Resource.Drawable.icon_toolbar_back_new);
ActionBar.SetCustomView(Resource.Layout.ActionBar_Custom_Layout);
ActionBar.SetDisplayShowCustomEnabled(true);
base.OnCreate(bundle);
SetContentView(Resource.Layout.SecondActivity_Layout);
以下是SecondActivity_Layout
:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:text="Text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/textView1" />
<fragment
class="frag.Fragment_Second"
android:id="@+id/fragment_secondActivity"
android:paddingTop="10dip"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
</LinearLayout>
以下是片段的布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:minWidth="25px"
android:minHeight="25px">
<TextView
android:text="@string/secondFragment_name"
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/textView1" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/editText1"
android:paddingLeft="10dp" />
</LinearLayout>
以下是片段代码:
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
return inflater.Inflate(Resource.Layout.Fragment_ProjectDetails, container); //view;// base.OnCreateView(inflater, container, savedInstanceState);
}
public override void OnActivityCreated(Bundle savedInstanceState)
{
Toast.MakeText(this.Activity, "activity for second fragment created",ToastLength.Short).Show();
base.OnActivityCreated(savedInstanceState);
}
现在的问题是。第二个活动仍为空,它没有被片段填充(但没有错误消息)。如果无法找到片段或类似的东西,我会理解它,但在这种情况下,片段(onCreateView
,onActivityCreated
)中的所有函数都被调用,而Toast
是也正在显示,但活动是空的。然后我尝试在第二个活动布局文件中的片段顶部插入一个文本视图,并显示它,但片段中的控件仍然不可见。然后我尝试更改与第二个活动关联的片段,我将其更改为调用活动的片段,并且正确加载了这个(我在.axml
文件中更改了它。)
我在这里缺少什么,对我而言,似乎第二个没有被创建属性,因此控件无法显示(但是,我可能也错了)?
谢谢
答案 0 :(得分:0)
我是从Java(Android开发)迁移到Xamarin的人,我对此寄予了很大的希望。但我必须承认,几周之后,第一批热情就消失了。 Xamarin中缺少很多东西,随着时间的流逝,我更想回到Java并开始学习iOS的Objective C.我现在在Xamarin做的这个项目,如果我使用Java,我本来就已经做过了,但是现在我还处于早期阶段(当然它不能像Java一样快,因为我必须google一切,但......)。这些也是资源文件的问题,有时当我的项目中断时我无法阻止它执行,我必须通过任务栏杀死Visual Studio。在大多数情况下,当我这样做时,资源文件被&#34;销毁&#34;当我再次打开项目时,我再也无法启动它了(在大多数情况下,我没有打扰,因为我正在练习,我创建了一个新的,但如果它是一个更大的项目怎么办?) 接下来的事情是当设计器打开时,.axml中缺少IntelliSense(当我使用xml viewer打开它时,我获得了IntelliSense)。我是否必须在这些视图之间切换? 而现在这个片段,如果这些重要的东西不能正常工作,我应该如何信任系统。
由于我还处于试用阶段,我会给这整个事情一个机会,但是,尽管我很难过,但有趣的是#34;使用它正在减少......
很抱歉很长的帖子,但只是需要说:)
答案 1 :(得分:0)
我遇到了同样的问题,我所做的一切都没有解决,包括删除布局并使用不同的名称再次添加布局。
我发现我弄乱了这个方法并忘记了override
关键字。在这个修复之后,它工作得很好。