在android SetText中只需要resId

时间:2014-06-11 11:59:21

标签: android xamarin

这可能非常简单,但我在android开发中遇到了settext问题。

以下代码:

TextView countDownTextView = FindViewById<TextView> (Resource.Id.countdownTimer);

countDownTextView.SetText ("New text");

给出错误:

The best overloaded method match for 'Android.Widget.TextView.SetText(int)' has some invalid arguments

Argument 1: cannot convert from 'string' to 'int'

现在settext应该是(字符串)但是由于某种原因,当我编写它时,它需要int残余。如何使用settext和字符串更改Textview?

我尝试过使用

string value ="new text"

但这也没有用。

制作更简单的版本,但遇到同样的问题

using System;

using Android.App;
using Android.Content;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS;

namespace CountdownTest
{
    [Activity (Label = "CountdownTest", 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++);
        };

        TextView textV = (TextView)FindViewById<TextView> (Resource.Id.CallText);

        textV.SetText ("diverse");
    }
}
}

和XML

    <?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">
    <Button
        android:id="@+id/myButton"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello" />
    <TextView
        android:text="Text"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/CallText" />
</LinearLayout>

4 个答案:

答案 0 :(得分:7)

如果您使用的是Xamarin:

TextView countDownTextView = FindViewById<TextView> (Resource.Id.countdownTimer);

countDownTextView.Text = "value";

答案 1 :(得分:0)

尝试将您的代码更改为:

TextView countDownTextView = (TextView) findViewById( R.id.countdownTimer );
countDownTextView.setText( "New text" );

注意我的代码与你的代码的区别。

你得到了错误的组件,而且是以错误的方式调用方法。 findViewById上的字母“F”不应大写,而应小写。这同样适用于资源ID和括号内部。

答案 2 :(得分:0)

考虑这段代码

String value = "New Text";
TextView countDownTextView = (TextView)findViewById(R.id.countdownTimer);
countDownTextView.SetText (value);

答案 3 :(得分:0)

只需像这样改变并尝试

    TextView countDownTextView = (TextView)findViewById (R.Id.countdownTimer); 

    countDownTextView.SetText("New text");