Java Список массивов не будет обновляться при нажатии кнопки - PullRequest
0 голосов
/ 28 января 2020

Я новичок в Java (и stackoverflow ...), так что это может быть очевидным, но не могу найти подобное, когда я искал его (если я пропустил его, пожалуйста, не стесняйтесь просто связать меня решение!)

Я пытаюсь обновить мой список массивов кнопкой. Он продолжает говорить «Не удается разрешить символ fileEntry», когда я использую его в onSensorChanged (раньше я определял его вне кнопки, но он не обновлял его, когда я нажимал кнопку «Пуск»), а также он говорил: «Переменная fileEntry никогда не используется 'внутри кнопки. См. Код ниже:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    starting_button = (Button) findViewById(R.id.button_start);
    starting_button.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {

            ArrayList fileEntry = new ArrayList();

И вот где я пытаюсь его использовать:

@Override
public void onSensorChanged(SensorEvent sensorEvent) {

    fileEntry.add(sensorEvent.values[0] + "," + sensorEvent.values[1] + "," + sensorEvent.values[2] + "\r");
}

Что я хотел бы сделать, это иметь новый fileEntry (т.е. очистить его ) каждый раз, когда я нажимаю кнопку запуска.

Я знаю, что мой код далек от совершенства, заранее извините!

1 Ответ

1 голос
/ 28 января 2020

Вы должны объявить свой ArrayList как свойство в вашем классе активности, как это, чтобы использовать его в своих различных методах:

class MainActivity extends AppCompatActivity() {
    private ArrayList fileEntry;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        fileEntry = new ArrayList();

        starting_button = (Button) findViewById(R.id.button_start);
        starting_button.setOnClickListener(new View.OnClickListener() {
    }

    @Override
    public void onClick(View v) {
        // Do something with your fileEntry
    }

    @Override
    public void onSensorChanged(SensorEvent sensorEvent) {
        fileEntry.add(sensorEvent.values[0] + "," + sensorEvent.values[1] + "," + sensorEvent.values[2] + "\r");
    }    
}

Область действия вашего свойства теперь будет ограничена вашим классом, и не просто ваш метод onClick.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...