0

基本的には、アクティビティが開始したらすぐにスピニングホイールをロードし、アクティビティが終了すると消えるようにします。ただし、現在のコードでは、キーを押したときにのみ起動します。すべてが自動的に起動するように、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);
    }
};
4

2 に答える 2

0

何をしたいのか具体的に教えてください。アプリの読み込み中に進行状況ダイアログを表示しますか、それとも何かをフェッチしている間表示しますか?

-= UPDATE =-さて、私が見ているように、あなたはコードでさまざまなことをしようとしています。

アクティビティを開始するとすぐにダイアログを表示する場合は、上記のように、onKeyDownのコードをonResumeにも配置する必要があります。

ただし、何かを選択したときに表示されるダイアログを作成しようとしている場合。たとえば、リストに載っている人なら、正しくやっています。

最後に、両方を実行している場合は、ダイアログなどを作成するためのメソッドを作成し、onKeyDownとonResumeの両方からこれを呼び出すことをお勧めします。

于 2012-02-14T13:41:44.540 に答える
0

onkeyDown()コードをアクティビティonResume()に配置します。これは問題の解決に役立ちます。

于 2012-02-14T13:53:05.113 に答える