Ошибка при доступе к переменным

#android #timer

#Android #таймер

Вопрос:

Я получаю ошибки при доступе к объекту одного класса в другом. Ниже приведен мой код:

 package FinalProj.com;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.os.CountDownTimer;

public class iFallApp extends Activity{
    public Object textView1;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        //TextView textview = new TextView(this);
        //textview.setText("This is the iFall tab");
       // setContentView()
        setContentView(R.layout.ifallapp);

        View textView1 = findViewById(R.id.textView1);

        MyCount counter = new MyCount(5000,1000);
        counter.start();


    }

    public class MyCount extends CountDownTimer{
        public MyCount(long millisInFuture, long countDownInterval) {
            super(millisInFuture, countDownInterval);
            }

        iFallApp app1 = new iFallApp();

        @Override
        public void onFinish() {
            // TODO Auto-generated method stub

            app1.textView1.setText("done");
        }

        @Override
        public void onTick(long millisUntilFinished) {
            // TODO Auto-generated method stub

        }
    }

}
  

Я пытаюсь получить доступ к textView1 класса iFallApp в классе Mycount. Однако он не выдает мне ошибку для textView1, но ошибка заключается в том, что метод «setText (string)» не определен для типа object.

Пожалуйста, предложите.

Ответ №1:

изменить

  public Object textView1; 
  

Для

 public TextView textView1;
  

и изменить

 View textView1 = findViewById(R.id.textView1);
  

Для

 textView1=(TextView) findViewById(R.id.textView1);
  

Ответ №2:

У вас есть переменная экземпляра с именем textView1, определенная как объект в вашем классе iFallApp. Это то, к чему осуществляется доступ в вашей строке app1.textView1.setText («готово»)