Использование:
import tkinter as tk
if __name__ == '__main__':
root = tk.Tk()
root.title('Centered!')
w = 800
h = 650
ws = root.winfo_screenwidth()
hs = root.winfo_screenheight()
x = (ws/2) - (w/2)
y = (hs/2) - (h/2)
root.geometry('%dx%d+%d+%d' % (w, h, x, y))
root.mainloop()
Когда пользователь нажимает на вашу кнопку, вы хотите сделать 2 вещи. Вы хотите показать несколько изображений, или вы хотите позвонить finish()
.
Я бы предложил использовать boolean
в качестве флага состояния и сравнить его вместо сравнения самого ImageView
. Это будет проще, и ваш код будет легче читать.
Я создал флаг с именем firstClick
, который по умолчанию установлен на true
. Когда пользователь нажимает вашу кнопку (button1
в этом примере), мы проверяем это и показываем изображения. Затем мы устанавливаем его на false
, поэтому следующий щелчок вызовет finish()
.
private ImageView equipament1;
private ImageView equipament2;
// The current state of the Activity
private boolean firstClick = true;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_analise)
equipament1 = findViewById(R.id.equipamento1);
equipament2 = findViewById(R.id.equipamento2);
// Setting your OnClickListener
Button button = (Button) findViewById(R.id.button1);
button.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
if( firstClick ) {
firstClick = false;
sentImg();
} else {
finish();
}
}
});
}
public void sentImg() {
equipament1.setImageResource(R.drawable.reactor);
equipament2.setImageResource(R.drawable.reactor);
}
Проблема в том, что во второй раз вы уже изменили значение компаратора.
Если цель состоит в том, чтобы просто изменить изображения, вам не нужно if / else.
private ImageView equipament1;
private ImageView equipament2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_analise)
equipament1 = findViewById(R.id.equipamento1);
equipament2 = findViewById(R.id.equipamento2);
public void sentImg() {
equipament1.setImageResource(R.drawable.reactor);
equipament2.setImageResource(R.drawable.reactor);
}