主要活动我正在命名我的项目" MyFirstApp"
using System;
using Android.App;
using Android.Content;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS;
namespace MyFirstApp
{
[Activity (Label = "MyFirstApp", MainLauncher = true)]
public class MainActivity : Activity
{
int count = 1;
protected override void OnCreate (Bundle bundle)
{
base.OnCreate (bundle);
// Set our view from the "main" layout resource
SetContentView (Resource.Layout.Main);
// Get our button from the layout resource,
// and attach an event to it
Button button = FindViewById<Button> (Resource.Id.myButton);
button.Click += delegate {
button.Text = string.Format ("{0} clicks!", count++);
};
}
}
}
布局 res / layout
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<EditText
android:id="@+id/edit_message"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:hint="Enter Message" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Send"
android:id="@+id/button_send" />
</LinearLayout>
字符串
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">My First App</string>
<string name="edit_message">Enter a message</string>
<string name="button_send">Send</string>
<string name="action_settings">Settings</string>
<string name="title_activity_main">MainActivity</string>
</resources>
请帮助我,我是Android开发的初学者 如果有什么不清楚,我会尝试添加更多细节 我正在使用Xamarin开发
谢谢
答案 0 :(得分:5)
添加属性:
android:id="@+id/myButton"
到布局xml文件中的按钮。
然后在您的活动中,您可以找到如下按钮:
Button button = (Button) findViewById(R.id.myButton);
而不是:
Button button = FindViewById<Button> (Resource.Id.myButton);
更新:嗯,我推荐的findViewById是普通的Android,不确定它在Xamarin中是如何工作的,但是肯定你的按钮在xml中需要一个id
更新2:实际上你已经有了Id和你的按钮ID,但它不是myButton,它是button_send
==&gt;所以你可能想要使用那个而不是myButton
答案 1 :(得分:2)
在您的布局中,按钮ID为 - button_send:
android:id="@+id/button_send"
因此,在活动代码中,当您“找到”此按钮时,您应该使用该ID,而不是
Button button = FindViewById<Button> (Resource.Id.myButton);
你应该使用
Button button = FindViewById<Button> (Resource.Id.button_send);
答案 2 :(得分:1)
问题是一些内部脚手架部件正在生成虚假代码,假设按钮的标识添加到布局中。没有任何上下文可以确定为#E; MyButton&#39;支持为漫游添加的两个按钮中的哪一个。我刚刚将其重命名为&#34;翻译按钮&#34;因为我先加了那个按钮。我不确定当我开始使用真实应用时我会做些什么。
在过去,我们会将此类内容提供给内部用户,以确保它是合适的教学材料。
答案 3 :(得分:0)
这是一个奇怪的问题,资源本身存在于与定义所有UI元素的资源不同的命名空间。
尝试使用&#34; MyFirstApp.Android.Resource.Id.button_send&#34;代替。
答案 4 :(得分:0)
面临同样的问题。
您应该执行以下操作:
1)剪切或评论此代码片段:
Button button = FindViewById<Button>(Resource.Id.myButton);
button.Click += delegate {
button.Text = string.Format ("{0} clicks!", count++);
};
2)建立项目
3)在p中添加代码。再次1(粘贴或取消注释)
答案 5 :(得分:-2)
我在Layout中只能看到一个Button,而这个Button的id是button_send。
请使用(Button) findViewById(R.id.button_send);