2014-10-11 1 views
0

MainActivity.java - просто с кнопкой и текстовым просмотром. Нажатие кнопки запускает ExplicitlyLoadedActivity с редактором. Пользователь вводит что-то и нажимает кнопку «Ввод», возвращается обратно в MainActivity.java с текстом, установленным в текстовом представлении MainActivity.Не получать текст, введенный в EditText, обратно в вызывающую активность с помощью операции

public class ActivityLoaderActivity extends Activity { 

static private final int GET_TEXT_REQUEST_CODE = 1; 
public String text = "No Text Entered!"; 
String requiredValue="a"; 
// TextView that displays user-entered text from ExplicitlyLoadedActivity runs 
private TextView mUserTextView; 
Intent in;  
@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(); 

     } 
    });   
} 


// 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(); 
    explicitIntent.setClass(getApplicationContext(), ExplicitlyLoadedActivity.class); 


    // TODO - Start an Activity using that intent and the request code defined above 
    startActivityForResult(explicitIntent, GET_TEXT_REQUEST_CODE); 


}  
@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. 
    if (requestCode == RESULT_OK) { 

      requiredValue = data.getStringExtra("text").toString(); 
      mUserTextView.setText(requiredValue); 
     } 
} 
} 

ExplicitlyLoadedActivity.java

public class ExplicitlyLoadedActivity extends Activity { 

private EditText mEditText; 
public String s = "abc"; 
@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()"); 
    Toast.makeText(ExplicitlyLoadedActivity.this, "Button clicked...", 
      Toast.LENGTH_SHORT).show(); 
    // TODO - Save user provided input from the EditText field 
    s = mEditText.getText().toString(); 
    Toast.makeText(ExplicitlyLoadedActivity.this, "Explicit : " + s, 
      Toast.LENGTH_SHORT).show(); 

    // TODO - Create a new intent and save the input from the EditText field as extra 
    Intent i = getIntent(); //I don't know if this is the problem 
    i.putExtra("text", s); 
    // TODO - Set Activity's result with result code RESULT_OK 
    setResult(RESULT_OK, i); 

    // TODO - Finish the Activity 
    finish(); 
} 
} 

ответ

0

Вы должны построить новый Intent, заменить "Намерение я = getIntent()" с - "Намерения I = новый Intent()"

+0

Не помогает. Текст все еще не изменяется на mUserTextView в ActivityLoaderActivity.java. –

0

Как вам предположил, что эта проблема связана с вашим классом ExplicitlyLoadedActivity. В методе enterClicked() вы неправильно создали свой Intent. Вам нужно положить;

Intent explicitIntent = new Intent(ExplicitlyLoadedActivity.this, ActivityLoaderActivity.class); 

Вы должны найти свой код, как только это будет сделано.

С уважением, V