@shevyrinn

Как передать значение переменной в другой метод?

Доброго времени суток!
Я не могу понять, как из метода onClick в nextQuoteBtn передать значение pos, для копирования цитаты из массива. Помогите реализовать.
//Кнопка смены цитаты
        Button nextQuoteBtn = (Button) findViewById(R.id.next_quote_btn_quote_activity);
        nextQuoteBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                final int pos = random.nextInt(quotes.length);
                QuoteShowView.setText(quotes[pos]);
            }
        });

        //Кнопка "копировать"
        ImageButton copyQuoteBtn = (ImageButton) findViewById(R.id.quote_btn_copy);
        copyQuoteBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast toast = Toast.makeText(getApplicationContext(),
                        "Цитата скопирована", Toast.LENGTH_SHORT);
                toast.show();

                android.text.ClipboardManager clipboard = (android.text.ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
                clipboard.setText(quotes[pos]);
            }
        });

        //Кнопка "поделится"
        ImageButton shareQuoteBtn = (ImageButton) findViewById(R.id.quote_btn_share);
        shareQuoteBtn.setOnClickListener(new View.OnClickListener() {
            @Overrided 
            public void onClick(View v) {
                Intent sendIntent = new Intent();
                sendIntent.setAction(Intent.ACTION_SEND);
                sendIntent.putExtra(Intent.EXTRA_TEXT, quotes[pos]);
                sendIntent.setType("text/plain");
                startActivity(Intent.createChooser(sendIntent,"Поделиться"));
            }
        });
  • Вопрос задан
  • 1070 просмотров
Пригласить эксперта
Ответы на вопрос 2
zagayevskiy
@zagayevskiy Куратор тега Java
Android developer at Yandex
Даниил, ладно, я понял, но говоришь ты ппц непонятно. Ты хочешь использовать в разных анонимный классах одну и ту же переменную. Зачем ты это хочешь я не знаю, но сделать это можно так
final int pos = random.nextInt(quotes.length); заменяешь на присвоение в поле объемлющего класса. В остальных местах используешь.
Ответ написан
@ZZiliST
Изучаю JS, CSS, HTML, PHP
я в Java не силён, но если не ошибаюсь есть два варианта. Либо создать глобальную переменную, которой будет присваиваться значение pos. Тогда ты сможешь использовать её в любом методе. Либо ты должен изменить метод onClick заменив void (ничего не возвращает) на нужный тип данных, например String и возвращать значение pos.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы