我有两个文件MainActivity.java和GestureListener.java 在MainActivity的onActivityCreate()中,我开始一个线程GestureListener.start()。 GestureListener有一个等待手势事件的线程。当事件发生时,我想转移到MainActivity.java中的一个函数。
是否可以这样做?
答案 0 :(得分:0)
制作GestureListener的参数化构造函数,当你创建GestureListener的对象时,只需将MainActivity的对象传递给该构造函数,并在GestureListener类中调用MainActivity的方法,然后从该Object调用该方法。
检查以下代码:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
GestureListener listener = new GestureListener(this);
listener.start();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
public void makeSomeCalculation() {
//logic to change some UI
}
}
并检查GestureListener类:
public class GestureListener extends Thread {
MainActivity mainActivity;
public GestureListener(MainActivity mainActivity) {
// TODO Auto-generated constructor stub
this.mainActivity = mainActivity;
}
public void run() {
//write other logic
mainActivity.makeSomeCalculation();
//write other logic
}
}