Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从意向活动中获取价值-android_Android_Android Activity - Fatal编程技术网

从意向活动中获取价值-android

从意向活动中获取价值-android,android,android-activity,Android,Android Activity,我想在ActivityLoaderActivity中显示来自ExplicitlyLoadedActivity的编辑文本。 ActivityLoader活动性 package course.labs.intentslab; import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.util.Log; imp

我想在ActivityLoaderActivity中显示来自ExplicitlyLoadedActivity的编辑文本。 ActivityLoader活动性

package course.labs.intentslab;

import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class ActivityLoaderActivity extends Activity {

static private final int GET_TEXT_REQUEST_CODE = 1;
static private final String URL = "http://www.google.com";
static private final String TAG = "Lab-Intents";

// For use with app chooser
static private final String CHOOSER_TEXT = "Load " + URL + " with:";

// TextView that displays user-entered text from ExplicitlyLoadedActivity runs
private TextView mUserTextView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_loader_activity);

    // Get reference to the textView
    mUserTextView = (TextView) findViewById(R.id.textView1);

    // Declare and setup Explicit Activation button
    Button explicitActivationButton = (Button) findViewById(R.id.explicit_activation_button);
    explicitActivationButton.setOnClickListener(new OnClickListener() {

        // Call startExplicitActivation() when pressed
        @Override
        public void onClick(View v) {

            startExplicitActivation();

        }
    });

    // Declare and setup Implicit Activation button
    Button implicitActivationButton = (Button) findViewById(R.id.implicit_activation_button);
    implicitActivationButton.setOnClickListener(new OnClickListener() {

        // Call startImplicitActivation() when pressed
        @Override
        public void onClick(View v) {

            startImplicitActivation();

        }
    });

}


// Start the ExplicitlyLoadedActivity

private void startExplicitActivation() {

    Log.i(TAG,"Entered startExplicitActivation()");

    // TODO - Create a new intent to launch the ExplicitlyLoadedActivity class
    Intent explicitIntent = new Intent (ActivityLoaderActivity.this,ExplicitlyLoadedActivity.class);


    // TODO - Start an Activity using that intent and the request code defined above

    startActivity (explicitIntent); 

}

// Start a Browser Activity to view a web page or its URL

private void startImplicitActivation() {

    Log.i(TAG, "Entered startImplicitActivation()");

    // TODO - Create a base intent for viewing a URL
    // (HINT:  second parameter uses Uri.parse())

    Intent baseIntent = new Intent (Intent.ACTION_VIEW,Uri.parse(URL));

    // TODO - Create a chooser intent, for choosing which Activity
    // will carry out the baseIntent
    // (HINT: Use the Intent class' createChooser() method)
    Intent chooserIntent = Intent.createChooser(baseIntent,CHOOSER_TEXT);


    Log.i(TAG,"Chooser Intent Action:" + chooserIntent.getAction());


    // TODO - Start the chooser Activity, using the chooser intent

    startActivity (chooserIntent);
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {

    Log.i(TAG, "Entered onActivityResult()");

    // TODO - Process the result only if this method received both a
    // RESULT_OK result code and a recognized request code
    // If so, update the Textview showing the user-entered text

        // Check which request we're responding to
        if (requestCode == GET_TEXT_REQUEST_CODE) {
            // Make sure the request was successful
            if (resultCode == RESULT_OK) {
                String input = data.getStringExtra("BAG"); 
                mUserTextView.setText(input);

            }
        }

    }
}
"

显式加载活动

 package course.labs.intentslab;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;

public class ExplicitlyLoadedActivity extends Activity {

static private final String TAG = "Lab-Intents";

private EditText mEditText;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.explicitly_loaded_activity);

    // Get a reference to the EditText field
    mEditText = (EditText) findViewById(R.id.editText);

    // Declare and setup "Enter" button
    Button enterButton = (Button) findViewById(R.id.enter_button);
    enterButton.setOnClickListener(new OnClickListener() {

        // Call enterClicked() when pressed

        @Override
        public void onClick(View v) {

            enterClicked();

        }
    });

}

// Sets result to send back to calling Activity and finishes

private void enterClicked() {

    Log.i(TAG,"Entered enterClicked()");

    // TODO - Save user provided input from the EditText field
    String givenText = mEditText.getText().toString();
    // TODO - Create a new intent and save the input from the EditText field as an extra
    Intent editText = new Intent();
    editText.putExtra("BAG" ,givenText);
    // TODO - Set Activity's result with result code RESULT_OK
    setResult(RESULT_OK , editText);
    // TODO - Finish the Activity
    finish();
}
}
我读了很多关于Stackoverflow的帖子,但是对我来说不起作用,文本没有出现。
我尝试了许多变体,包括没有ActivityLoaderActivity最后两行代码的变体。

如果您想继续使用ActivityLoaderActivity,这两行代码的用途不清楚。只要去掉它们,你就会没事的。这是因为您的其余代码当然是正确的

 Intent myIntent = new Intent(ActivityLoaderActivity.this, ExplicitlyLoadedActivity.class); 
    startActivityForResult( myIntent, GET_TEXT_REQUEST_CODE );
或者,如果确实要重新启动ActivityLoaderActivity,则应在新的意图中传递BAG额外参数,并在ActivityLoaderActivity.onCreate中读取该参数:

Intent myIntent = new Intent(ActivityLoaderActivity.this, ExplicitlyLoadedActivity.class); 
myIntent.putExtra("BAG", input);
startActivityForResult(myIntent, GET_TEXT_REQUEST_CODE );

确保声明字符串输入;外部if语句。

谢谢您的回答。我又试着删掉了这两行,没用。我试过了,没有if的条件,结果是一样的。现在都是代码。你能看看StartImplicationActivation吗。同样的方法不起作用。