什么替换KeyEvent?

时间:2012-02-14 12:24:08

标签: android multithreading keyevent onkeydown

基本上,我希望在活动开始时让纺车轮立即加载,然后在完成时消失。但是,在我当前的代码中,它仅在我按下某个键时才会启动。我应该如何替换onKeyDown方法以便一切自动启动?

@Override
public boolean onKeyDown(int keyCode, KeyEvent event){
    pd = ProgressDialog.show(this,"Working", "Fetching Grades", true, 
            false);
    Thread thread = new Thread(this);
    thread.start();
    return super.onKeyDown(keyCode, event);
}
public void run(){
    //String userthat = userThing.getText().toString();
    //String passthis = passThing.getText().toString();
    thisthing = new ClientLoginForm(user2s,pas2s);
    try{
        grades +=thisthing.returnGradies();
    } catch (Exception e){
        grades +="Connection Problems";
    }
    handler.sendEmptyMessage(0);
}
private Handler handler = new Handler(){
    @Override
    public void handleMessage(Message msg){
        pd.dismiss();
        tv.setText(grades + "\n " + pas2s + " " + user2s);
    }
};

2 个答案:

答案 0 :(得分:0)

你能说出你想要它做什么吗? 您是否希望在加载应用程序时显示进度对话框,或者是否希望它在获取内容时显示?

- = UPDATE = - 好的,正如我所看到的,您正在尝试在代码中执行不同的操作。

如果你希望它在你开始活动时立即显示对话框,那么你需要将onKeyDown中的代码放在onResume中,如上所述。

但是,如果您尝试在选择某些内容时显示一个对话框。例如一个人从列表中,然后你正确地做到了。

最后,如果你两个都做,那么我建议你制作一个方法来制作对话框等等,然后从onKeyDown和onResume

中调用它

答案 1 :(得分:0)

将onkeyDown()代码放入活动onResume()它将帮助您解决问题。