0

私のアプリでは、アイコンが非表示のヘッダーがあり、リストビューをクリックするとリストビューのあるアダプターがあり、リスナーを使用してログイン画面に移動します。ログインが成功すると、リストビュー(アダプター)に戻り、アイコンが取得されますヘッダーに表示されます。私は次のように意図を送信しています: http://pastebin.com/4SKnyjVX

以下は、ログインボタンをクリックします

public void onClick(View v) {

    String password = etPassword.getText().toString();

    if(password.equals("guest")){
        Intent returnIntent = new Intent();
        returnIntent.putExtra("result",result);
        setResult(1,returnIntent);     
        finish();
    } else {
        //----
    }

    finish();                  
}

onActivityResult を使用してフラグを設定し、このフラグをクリック リスナーで使用し、それを使用してアイコンを表示するにはどうすればよいですか。どんな提案でも大歓迎です

4

3 に答える 3

2

オーバーライドする必要がありますonActivityResult(int requestCode, int resultCode, Intent resultIntent):

  • requestCodeは、2 番目のパラメータとして最初に に渡した整数ですstartActivityForResult()。区別する必要がある複数のリクエストがある場合は、これが元のリクエストと一致することを確認する必要があります。
  • resultCodeandは、上記のコードでresultIntent渡す整数とインテントです。setResult()

したがって、メソッドは次のようになります。

@Override
public void onActivityResult(int requestCode, int resultCode, Intent resultIntent) {
    if (requestCode == 1) { // original request
        if (resultCode == 1) { // success
            String result = resultIntent.getStringExtra("result");
            // Login successful, update your model and call adapter.notifyDataSetChanged() or something
        }
    }
}
于 2012-12-04T10:15:29.603 に答える
1

ヘッダーにアイコンが非表示のリストビューがある以前のアクティビティで、関数 onActivityResult() を次のようにオーバーライドします-

protected void onActivityResult (int requestCode, int resultCode, Intent data) {
    boolean success = data.getBooleanExtra("result", false);
    if(success) {
        hiddenIcon.setVisibility(View.VISIBLE);
    }
    else {
        showDialog("Error");
   }
}

そして、私はあなたのonClickをこのように変更しました

public void onClick(View v) {

        String password = etPassword.getText().toString();
        Intent returnIntent = new Intent();
        if(password.equals("guest")){
            returnIntent.putExtra("result", true);
            setResult(RESULT_OK, returnIntent);     
        } 
        else {
            returnIntent.putExtra("result", false);
            setResult(RESULT_OK, returnIntent);
        }

        finish();                  
    }
于 2012-12-04T10:10:19.423 に答える
0
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    // TODO Auto-generated method stub
    super.onActivityResult(requestCode, resultCode, data);
    if(resultCode==RESULT_OK){
        Bundle basket=data.getExtras();
        String s=basket.getString("result");
        //Your Code Here
    }
}

これは役に立ちます

于 2012-12-04T10:02:12.573 に答える