2016-09-28 6 views
0

Я создаю приложение в студии android, и мне нужен совет, у меня есть одна кнопка, и мне нужно изменить текст на второй кнопке, перейдя на первую. У меня есть код, который меняет только TextView, но не текст на кнопке.Изменить текст кнопки над другой кнопкой android

NewText = (TextView)findViewById(R.id.textView1); 
ChangeText = (Button)findViewById(R.id.ch_txt_ger); 

final TextView finalNewText1 = NewText; 
ChangeText.setOnClickListener(new View.OnClickListener() { 

    @Override 
    public void onClick(View v) { 

     //Set Text on button click via this function. 

     finalNewText1.setText(" (Frohe Weihnachten) "); 

    } 
}); 
+0

'ChangeText.setText (...)'? – Zarwan

+0

Я просто буду комментировать, что нет необходимости иметь вторую ссылку на тот же TextView ('R.id.textView1'). –

ответ

1

Та же концепция, как вы сделали для TextView

Button SecondButton,ChangeText; // declaring the buttons 
SecondButton = (Button)findViewById(R.id.button2); 
ChangeText = (Button)findViewById(R.id.ch_txt_ger); 

ChangeText.setOnClickListener(new View.OnClickListener() { 

    @Override 
    public void onClick(View v) { 

     //This changes the text on the second button 

     SecondButton.setText("New Text Here"); 

    } 
}); 

SecondButton.setOnClickListener(new View.OnClickListener() { 

    @Override 
    public void onClick(View v) { 

     //Do anything 

    } 
}); 
+0

Не могли бы вы рассказать немного подробнее? Начинающий здесь и как-то не работает –

0
 Button ChangeText; 
    ChangeText = (Button)findViewById(R.id.ch_txt_ger); 
    ChangeText.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 

      //part to change the button text 
      Button tmp_button = (Button)findViewById(R.id.ch_txt_ger); 
      tmp_button.setText("Frohe Weihnachten"); 

      //part to change the textview text 
      TextView NewText 
      NewText = (TextView)findViewById(R.id.textView1); 
      finalNewText1.setText(" (Frohe Weihnachten) "); 

     } 
    }); 

After Clicking outlooking

Здесь вы идете: Вы можете определить временную переменную кнопку и сделать изменения в нем, если установка той же кнопка сама по себе вызывает проблемы. И если текст не изменится в зависимости от пользователя, и если вы знаете его как On/OFF, Red/Green, вы также можете его кодировать с помощью файла селектора, который сделает код Java более чистым.

Крошечный совет: определение текстовых элементов и кнопок, которые будут затронуты, должно быть записано в той же функции и близко к месту, где они меняются, чтобы отслеживать, где вы их закодировали.

Смежные вопросы