如何使用按钮执行存储在java class中的动作?
How to use button to execute a action stored in java class?
所以,我之前问过我的项目,一个好心的人给了我关键词。
现在我正在研究它,我想知道是否可以:
获取存储在 java class 中的 java class(客户端)操作,并将其调用到按钮,例如:
Button Button1 = (Button) findViewById(R.id.Button1);
Button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(Client);
抱歉,我只是一个正在尝试完成他的学校项目的人,我的学校没有 android 编队所以请放过我,谢谢。
我认为,为了让您完成这个项目,您必须研究 Threads(开始 here) and Handlers (here)。 startActivity 方法用于启动一个与用户所在的不同的activity(即为具有新布局的用户打开一个新的"screen",我认为这不是什么你想要或需要做的)。此外,startActivity 方法接受一个 Intent 对象,而不是像您的 Client class 这样的一般 class。
如果您要在主线程(用户当前正在与之交互的线程)上执行长时间操作,您应该在单独的线程中执行
这就是您的 MainActivity 应该看起来的样子,它是部分的,有更有效的方法可以做到这一点,还有其他解决方案,例如 AsyncTask 和服务,但这应该给您一个大概的想法:
public class MainActivity extends ActionBarActivity {
Handler mHandler;
Thread myThread;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button Button1 = (Button) findViewById(R.id.Button1);
Button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
//your code for what do do with the information coming
//from your background thread
}
}
myThread = new Thread(new MyRunnable());
myThread.start();
}
};
}
class MyRunnable implements Runnable {
@Override
public void run() {
Client client = new Client();
client. //whatever methods and operations you want to run through
//your Client object
//create a Message object to pass so it is handled by
//your main thread (presenting retrieved data to the user
//for example)
Message message = mHandler.obtainMessage();
//when you want to send a Message object back to main
mHandler.sendMessage(message);
}
}
}
所以,我之前问过我的项目,一个好心的人给了我关键词。 现在我正在研究它,我想知道是否可以:
获取存储在 java class 中的 java class(客户端)操作,并将其调用到按钮,例如:
Button Button1 = (Button) findViewById(R.id.Button1);
Button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(Client);
抱歉,我只是一个正在尝试完成他的学校项目的人,我的学校没有 android 编队所以请放过我,谢谢。
我认为,为了让您完成这个项目,您必须研究 Threads(开始 here) and Handlers (here)。 startActivity 方法用于启动一个与用户所在的不同的activity(即为具有新布局的用户打开一个新的"screen",我认为这不是什么你想要或需要做的)。此外,startActivity 方法接受一个 Intent 对象,而不是像您的 Client class 这样的一般 class。 如果您要在主线程(用户当前正在与之交互的线程)上执行长时间操作,您应该在单独的线程中执行 这就是您的 MainActivity 应该看起来的样子,它是部分的,有更有效的方法可以做到这一点,还有其他解决方案,例如 AsyncTask 和服务,但这应该给您一个大概的想法:
public class MainActivity extends ActionBarActivity {
Handler mHandler;
Thread myThread;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button Button1 = (Button) findViewById(R.id.Button1);
Button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
//your code for what do do with the information coming
//from your background thread
}
}
myThread = new Thread(new MyRunnable());
myThread.start();
}
};
}
class MyRunnable implements Runnable {
@Override
public void run() {
Client client = new Client();
client. //whatever methods and operations you want to run through
//your Client object
//create a Message object to pass so it is handled by
//your main thread (presenting retrieved data to the user
//for example)
Message message = mHandler.obtainMessage();
//when you want to send a Message object back to main
mHandler.sendMessage(message);
}
}
}