Вызов пустого метода в Java - PullRequest
0 голосов
/ 10 мая 2018

Я новичок в Java и безуспешно искал ответы на этот вопрос.Я пытаюсь вызвать метод из другого безуспешно.

У меня есть это в моем защищенном onCreate

    final RelativeLayout rlayout = (RelativeLayout) findViewById(R.id.mainlayout);
    rlayout.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            mLevelTextView = (TextView) findViewById(R.id.level);
            mLevelTextView.setText(Integer.toString(clickCounter));

            yellowLevelText = (TextView) findViewById(R.id.yellowLevel);
            yellowLevelText.setText(Integer.toString((clickCounter - 1) / 256 + 1));
            //this is what I am trying to call but get an error
            savedInfo();

            rlayout.setBackgroundColor(Color.parseColor("#" + decToHex(colorNumber)));
            colorNumber = new Integer(colorNumber - 1);
            clickCounter = new Integer(clickCounter + 1);
        }

    });

И это метод в конце моего кода, который я пытаюсьвызов:

    public void saveInfo(View view) {
    SharedPreferences sharedPref = getSharedPreferences("score", 
    Context.MODE_PRIVATE);

    SharedPreferences.Editor editor = sharedPref.edit();
    editor.putInt("totalScore", clickCounter);
    editor.putInt("yellowScore", yellowCounter);
    editor.putInt("magentaScore", magentaCounter);
    editor.putInt("cyanScore", cyanCounter);
    editor.apply();
}

Я получаю следующую ошибку: ошибка: метод saveInfo при запуске класса не может быть применен к данным типам;обязательно: просмотр найден: аргументы отсутствуют причина: фактические и формальные списки аргументов различаются по длине

Кто-нибудь с большим опытом может увидеть, что здесь может быть не так?

Ответы [ 3 ]

0 голосов
/ 10 мая 2018

Вы пытаетесь позвонить saveInfo(). Вам нужно позвонить saveInfo(someView).

Хотя на самом деле ваш метод saveInfo ничего не делает с этим параметром, поэтому просто удалите его. Подпись метода должна быть:

public void saveInfo() {
0 голосов
/ 10 мая 2018

Передача при клике в метод .. v

 @Override
    public void onClick(View v) {
        mLevelTextView = (TextView) findViewById(R.id.level);
        mLevelTextView.setText(Integer.toString(clickCounter));

        yellowLevelText = (TextView) findViewById(R.id.yellowLevel);
        yellowLevelText.setText(Integer.toString((clickCounter - 1) / 256 + 1));
        //this is what I am trying to call but get an error
        savedInfo(v);

        rlayout.setBackgroundColor(Color.parseColor("#" + decToHex(colorNumber)));
        colorNumber = new Integer(colorNumber - 1);
        clickCounter = new Integer(clickCounter + 1);
    }

});
0 голосов
/ 10 мая 2018

вы выполняете метод saveInfo без каких-либо аргументов. Вы должны передать аргумент типа View

...