代码之家  ›  专栏  ›  技术社区  ›  Christian

android活动的设计

  •  2
  • Christian  · 技术社区  · 15 年前

    爱丽丝必须回答三个问题。回答完问题后,她会看到一个对话框,列出问题和答案,还有一个按钮可以将答案保存到数据库中。

    目前我认为设计应该分为三类:掌握、提问、总结。

    大师提问的意图包括问题1的问题文本。 爱丽丝输入答案后,问题通过意图将答案返回给师父。

    然后师父处理问题,并通过意图调用摘要。

    1 回复  |  直到 15 年前
        1
  •  2
  •   Pentium10    15 年前

    你要找的是 startActivityForResult

    从屏幕返回结果

    窗口关闭后可以返回结果。此结果将传回调用活动的onActivityResult()方法,该方法可以提供包含任意数据的意图,以及传递给startActivityForResult()的请求代码。请注意,必须调用接受请求代码参数的startActivityForResult()方法才能获取此回调。下面的代码演示如何打开新屏幕并检索结果。

    // Open the new screen.
    public void onClick(View v){
        // Start the activity whose result we want to retrieve.  The
        // result will come back with request code GET_CODE.
        Intent intent = new Intent(this, com.example.app.ChooseYourBoxer.class);
        startActivityForResult(intent, CHOOSE_FIGHTER);
    }
    
    // Listen for results.
    protected void onActivityResult(int requestCode, int resultCode, Intent data){
        // See which child activity is calling us back.
        switch (resultCode) {
            case CHOOSE_FIGHTER:
                // This is the standard resultCode that is sent back if the
                // activity crashed or didn't doesn't supply an explicit result.
                if (resultCode == RESULT_CANCELED){
                    myMessageboxFunction("Fight cancelled");
                } 
                else {
                    myFightFunction(data);
                }
            default:
                break;
        }
    }
    
    
    
    // Class SentResult
    // Temporary screen to let the user choose something.
        private OnClickListener mLincolnListener = new OnClickListener(){
            public void onClick(View v) {
                Bundle stats = new Bundle();
                stats.putString("height","6\'4\""); 
                stats.putString("weight", "190 lbs");
                stats.putString("reach", "74\"");
                setResult(RESULT_OK, "Lincoln", stats);
                finish();
            }
        };
    
        private OnClickListener mWashingtonListener = new OnClickListener() {
            public void onClick(View v){
                Bundle stats = new Bundle();
                stats.putString("height","6\'2\""); 
                stats.putString("weight", "190 lbs");
                stats.putString("reach", "73\"");
                setResult(RESULT_OK, "Washington", Bundle);
                finish();
            }
        };