Java, проблема с потоком Thread и получением данных
Есть отдельный класс на основе Thread. Я хочу, чтобы перед запуском потока, считывалось поле из Main и обрабатывалось его значение.
Main
public class MainActivity extends AppCompatActivity{
public List<Note_builder> staffs = new ArrayList<Note_builder>();
Button btn_clear, btn_go_down, btn_go_up, btn_sound;
public Context context = this;
Note_builder t;
int i = 0;
public Note_builder st;
int mi=0; // кол-во листов; лист на котором мы находимся
TextView i_counter;
LinearLayout lin;
private SurfView mSurface;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
.
.
.
btn_sound.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try {
Note_builder st = staffs.get(mi);
mSurface.go();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
});
Отсюда я хочу получить переменную st и использовать её в моем классе DrawThread
(mSurface.go() запускает мне поток через SurfaceView)
public class DrawThread extends Thread {
public SoundPool soundPool;
public int sound_A1, sound_A2, sound_C1, sound_C2, sound_C3, sound_D1, sound_D2, sound_E1,
sound_E2, sound_F1, sound_F2, sound_G1, sound_G2, sound_H0, sound_H1, sound_H2;
public Note_builder staff; //Сюда я хочу засунуть переменную st
private SurfaceHolder surfaceHolder;
private volatile boolean running = true;
private Paint paint = new Paint();
public Context context;
private float x=100, y;
DrawThread(Context context, SurfaceHolder surfaceHolder) {
this.surfaceHolder = surfaceHolder;
this.context = context;}
Пробовал делать через Геттеры, но ничего не получилось. Скинул лишь фрагменты кода, если нужны остальные части, могу докинуть.