Я не могу получить текст для обновления после нажатия кнопки - PullRequest
1 голос
/ 16 марта 2020

извините за заголовок, не совсем знал, что написать. Я пытаюсь написать простую программу, в которой пользователь может нажать кнопку увеличения или уменьшения, и отображаемое число изменяется соответствующим образом. Однако у меня две проблемы. 1) Кажется, я не могу обновить представление (немного смущенное этим), поэтому число изменяется в событии щелчка 2) visual studio говорит мне, что в моих ресурсах нет «textView1» ...

Любая помощь / просвещение приветствуется

XML:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:gravity="center"
android:layout_height="match_parent">

<Button
    android:text="+"
    android:textSize="100sp"
    android:layout_width="200sp"
    android:layout_height="wrap_content"
    android:minWidth="25px"
    android:minHeight="325px"
    android:gravity="center"
    android:layout_gravity="center_horizontal"
    android:id="@+id/button1" />
<TextView
    android:text="0"
    android:textSize="100sp"
    android:gravity="center"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="20dp"
    android:layout_marginBottom="20dp"
    android:id="@+id/textView1" />
<Button
    android:text="-"
    android:textSize="100sp"
    android:layout_width="200sp"
    android:layout_height="wrap_content"
    android:minWidth="25px"
    android:minHeight="325px"
    android:gravity="center"
    android:layout_gravity="center_horizontal"
    android:id="@+id/button2" />

Основной код:

   namespace WhyDoesThisNotWork
{
    [Activity(Label = "@string/app_name", Theme = "@style/AppTheme", MainLauncher = true)]
    public class MainActivity : AppCompatActivity
    {
        //View v;
        Button btnIncrement;
        Button btnDecrement;
        int lifeTotal = 0;

        TextView textView1;


        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            Xamarin.Essentials.Platform.Init(this, savedInstanceState);
            // Set our view from the "main" layout resource
            SetContentView(Resource.Layout.layout1);

            btnIncrement = FindViewById<Button>(Resource.Id.button1);
            this.FindViewById<Button>(Resource.Id.button1).Click += this.Increment;

            btnDecrement = FindViewById<Button>(Resource.Id.button2);
            this.FindViewById<Button>(Resource.Id.button2).Click += this.Decrement;

            textView1 = FindViewById<TextView>(Resource.Id.textView1);
            textView1.Text = lifeTotal.ToString();

        }

        public void Increment(object sender, EventArgs e)
        {
            lifeTotal++;

        }

        public void Decrement(object sender, EventArgs e)
        {
            lifeTotal--;
        }

        public override void OnRequestPermissionsResult(int requestCode, string[] permissions, [GeneratedEnum] Android.Content.PM.Permission[] grantResults)
        {
            Xamarin.Essentials.Platform.OnRequestPermissionsResult(requestCode, permissions, grantResults);

            base.OnRequestPermissionsResult(requestCode, permissions, grantResults);
        }
    }
}

Ответы [ 2 ]

0 голосов
/ 16 марта 2020

Это всегда случается со мной, но я не знаю точного решения, поэтому я выполняю следующие шаги:

1- Попробуйте запустить приложение, иногда работает с такого рода ошибками.

2- Попробуйте «Очистить решение», затем «Построить решение» на вкладке «Построение», затем посмотрите на Список ошибок, возможно, вы увидите другие ошибки, которые вызывают эту ошибку.

3- Измените имя файла XML, затем выполните шаг (2).

4- Если вы вставите этот файл XML "или файл действий" непосредственно в ваш проект, то удалите его и сделайте его вручную Просто добавьте макет в ваш проект, затем скопируйте код в новый файл, затем выполните шаг (2), этот шаг.

5 - Закройте Visual Studio и go в папке проекта и переименуйте «bin» и папки «obj», затем откройте ваш проект и выполните шаг (2).

6 - Обновите Visual Studio и повторите шаги.

Используйте этот код для вызова функция щелчка:

myButton.Click += delegate
            {
                //your code here                
            };
0 голосов
/ 16 марта 2020

Используйте исключительно строчные буквы и _ в именах вашего ресурса xml файлов;) назовите его text_view_1, например

посмотрите на этот связанный вопрос. это случилось и со мной

, чтобы получить текст обновления ttry

 public void Increment(object sender, EventArgs e)
    {
        lifeTotal++;
        textView1.Text = lifeTotal.ToString();
    }

    public void Decrement(object sender, EventArgs e)
    {
        lifeTotal--;
        textView1.Text = lifeTotal.ToString();
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...