我已经设置了一个按钮来更改另一个按钮的名称,更改后该按钮不起作用

时间:2019-02-03 15:58:45

标签: android android-studio button

我已经设置了一个按钮,将语言从英语更改为威尔士语,只有大约5行英语,因此只需使用.setText手动更改每个框中的文本

我还需要更改按钮上的文本,这可以工作,但是一旦更改语言,其他按钮将无法正常工作。

下面的代码是按下“英语”按钮时发生的事情(按下威尔士按钮也发生同样的情况。.但是在威尔士语中)。按下calc,reset,calc2和reset2按钮后,它们将停止执行设置为要执行的功能...但是它们在未按下任何按钮之前都可以工作。

有什么想法吗?

谢谢

        english.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {


            quantity1.setText("Quantity");
            total1.setText("Minimum");

            Button calc = findViewById(R.id.buttoncalc);
            calc.setOnClickListener(this);
            calc.setText("Calculation");

            Button reset = findViewById(R.id.buttonreset);
            reset.setOnClickListener(this);
            reset.setText("Reset");

            Button calc2 = findViewById(R.id.buttoncalc2);
            calc2.setOnClickListener(this);
            calc2.setText("Calculation");

            Button reset2 = findViewById(R.id.buttonreset2);
            reset2.setOnClickListener(this);
            reset2.setText("Reset");

            multi_title.setText("Multi Calculator");
            single_title.setText("Single Calculator");

        }
    });

3 个答案:

答案 0 :(得分:1)

这是解决问题的完全错误的方法...

因为该框架提供了开箱即用的完美支持,而不会造成混乱。

Android Studio甚至还具有翻译编辑器,可以在其中并排翻译。

请参见documentationlocalization

答案 1 :(得分:0)

calc.setOnClickListener(this);

此关键字在此引用英语的点击侦听器,这就是您的基本功能无法正常工作的原因。 尝试将所有clicklistener设置为英语click listener的范围之外。 而且您的代码可以正常工作。

答案 2 :(得分:0)

Button calc = findViewById(R.id.buttoncalc);
Button reset = findViewById(R.id.buttonreset);
Button calc2 = findViewById(R.id.buttoncalc2);
Button reset2 = findViewById(R.id.buttonreset2);

setClicks();

english.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {


        quantity1.setText("Quantity");
        total1.setText("Minimum");
        calc.setText("Calculation");
        reset.setText("Reset");
        calc2.setText("Calculation");
        reset2.setText("Reset");
        multi_title.setText("Multi Calculator");
        single_title.setText("Single Calculator");

    }
});

private void setClicks() {

calc.setOnClickListener(this);
reset.setOnClickListener(this);
calc2.setOnClickListener(this);
reset2.setOnClickListener(this);

}

请尝试并再次检查