setText показан красным, и я не понимаю, почему - PullRequest
0 голосов
/ 05 августа 2020

setText показан красным, и я не понимаю, почему

public class MainActivity extends AppCompatActivity {

    TextView v = (TextView)findViewById(R.id.textInput);
    Button b = (Button)findViewById(R.id.btn12);
    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        b.setOnClickListener((new View.OnClickListener(){
            @Override
            public void onClick(View v) {
                v.setText("aaa");// why setText not found
            }
        }));


    }

}

thx

Ответы [ 3 ]

1 голос
/ 05 августа 2020

Вы получаете сообщение об ошибке, потому что метод setText() недоступен в View

, и вы пытаетесь получить доступ к View.setText("aaa"); внутри onClick () методу

Внесите изменения ниже в вашем коде

  1. Do findViewById() внутри onCreate() method
  2. Переименуйте свою TextView переменную

Попробуйте это

public class MainActivity extends AppCompatActivity {

    TextView textView;
    Button b ;
    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        
        textView = (TextView)findViewById(R.id.textInput);
        b = (Button)findViewById(R.id.btn12)
        b.setOnClickListener((new View.OnClickListener(){
            @Override
            public void onClick(View v) {
                textView.setText("aaa");// why setText not found
            }
        }));


    }

}
1 голос
/ 05 августа 2020

setText - это не метод представления, который вам нужно регистрировать для EditText, пока представление всегда будет EditText:

publi c class MainActivity extends AppCompatActivity {

TextView v = (TextView)findViewById(R.id.textInput);
Button b = (Button)findViewById(R.id.btn12);
@Override
protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    b.setOnClickListener((new View.OnClickListener(){
        @Override
        public void onClick(View v) {
            ((EditText)v).setText("aaa");// why setText not found
        }
    }));


}

}

0 голосов
/ 05 августа 2020

Переместите эти методы:

TextView v = (TextView)findViewById(R.id.textInput);
Button b = (Button)findViewById(R.id.btn12);

Вы можете использовать:

@Override
protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    TextView v = (TextView)findViewById(R.id.textInput);
    Button b = (Button)findViewById(R.id.btn12);
    b.setOnClickListener(new View.OnClickListener(){
        @Override
        public void onClick(View view) {
            v.setText("aaa");// why setText not found
        }
    });

или можете использовать:

public class MainActivity extends AppCompatActivity {

    private TextView v;
    private Button b;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        v = (TextView)findViewById(R.id.textInput);
        b = (Button)findViewById(R.id.btn12);
        b.setOnClickListener(new View.OnClickListener(){
           @Override
           public void onClick(View view) {
            v.setText("aaa");// why setText not found
           }
        });

    }

}
...